mirror of
https://github.com/Hopiu/bowser.git
synced 2026-03-17 03:20:24 +00:00
Features: - Add Jinja2 template engine for page rendering - Create startpage with Bowser branding and version info - Create error page templates for 404, 500, and network errors - Support for about:startpage special URL - Custom error message support in templates - Graceful fallback rendering if template fails - Browser now starts with startpage when no URL provided Templates: - assets/pages/startpage.html - Beautiful purple gradient intro page - assets/pages/error_404.html - Pink gradient 404 error page - assets/pages/error_500.html - Red gradient 500 error page - assets/pages/error_network.html - Orange gradient network error page Code: - src/templates.py - Template rendering utilities with Jinja2 - Updated main.py to use startpage as default - Updated Frame.load() to handle about: URLs and render errors with templates - Added 7 comprehensive template tests All 62 core tests passing (excluding GTK-dependent tests)
58 lines
1.9 KiB
Python
58 lines
1.9 KiB
Python
"""Tests for template rendering."""
|
|
|
|
import pytest
|
|
from src.templates import render_template, render_error_page, render_startpage
|
|
|
|
|
|
class TestTemplateRendering:
|
|
def test_render_startpage(self):
|
|
"""Test rendering the startpage template."""
|
|
html = render_startpage()
|
|
|
|
assert html
|
|
assert "Bowser" in html
|
|
assert "Welcome" in html
|
|
assert "<!DOCTYPE html>" in html
|
|
|
|
def test_render_startpage_has_version(self):
|
|
"""Test that startpage includes version."""
|
|
html = render_startpage()
|
|
|
|
assert "0.0.1" in html
|
|
|
|
def test_render_error_404(self):
|
|
"""Test rendering 404 error page."""
|
|
html = render_error_page(404, "http://example.com/missing")
|
|
|
|
assert html
|
|
assert "404" in html
|
|
assert "example.com/missing" in html
|
|
assert "Not Found" in html
|
|
|
|
def test_render_error_500(self):
|
|
"""Test rendering 500 error page."""
|
|
html = render_error_page(500, "http://example.com/error")
|
|
|
|
assert html
|
|
assert "500" in html
|
|
assert "Server Error" in html
|
|
|
|
def test_render_error_network(self):
|
|
"""Test rendering network error page."""
|
|
html = render_error_page(0, "http://example.com", "Connection refused")
|
|
|
|
assert html
|
|
assert "Network Error" in html
|
|
assert "Connection refused" in html
|
|
|
|
def test_render_error_with_custom_context(self):
|
|
"""Test error page with custom error message."""
|
|
html = render_error_page(404, "http://example.com", "Custom error message")
|
|
|
|
assert "Custom error message" in html
|
|
|
|
def test_render_template_with_context(self):
|
|
"""Test rendering template with custom context."""
|
|
html = render_template("startpage.html", version="1.0.0")
|
|
|
|
assert "1.0.0" in html
|