refinements
This commit is contained in:
@@ -29,12 +29,18 @@ class TestSettingsOverlay(unittest.TestCase):
|
||||
|
||||
self.reader = EbookReader(page_size=(800, 1200))
|
||||
|
||||
# Load a test EPUB - use any available EPUB in test data
|
||||
# Load a test EPUB - use a larger EPUB for spacing tests
|
||||
epub_dir = Path(__file__).parent / 'data' / 'library-epub'
|
||||
epubs = list(epub_dir.glob('*.epub'))
|
||||
if not epubs:
|
||||
self.skipTest("No test EPUB files available")
|
||||
|
||||
# Prefer larger EPUBs for better testing of spacing changes
|
||||
# Skip minimal-test.epub as it has too little content
|
||||
epubs = [e for e in epubs if 'minimal' not in e.name]
|
||||
if not epubs:
|
||||
epubs = list(epub_dir.glob('*.epub'))
|
||||
|
||||
test_epub = epubs[0]
|
||||
|
||||
# Debug logging
|
||||
@@ -175,9 +181,12 @@ class TestSettingsOverlay(unittest.TestCase):
|
||||
self.reader.open_settings_overlay()
|
||||
initial_font_scale = self.reader.base_font_scale
|
||||
|
||||
# Get overlay reader to query button positions
|
||||
overlay_manager = self.reader.overlay_manager
|
||||
overlay_reader = overlay_manager._overlay_reader
|
||||
# Get overlay reader to query button positions from the active overlay sub-application
|
||||
overlay_subapp = self.reader._active_overlay
|
||||
if not overlay_subapp:
|
||||
self.skipTest("No active overlay sub-application")
|
||||
|
||||
overlay_reader = overlay_subapp._overlay_reader
|
||||
|
||||
if not overlay_reader or not overlay_reader.manager:
|
||||
self.skipTest("Overlay reader not available for querying")
|
||||
@@ -302,15 +311,17 @@ class TestSettingsOverlay(unittest.TestCase):
|
||||
# Open overlay
|
||||
self.reader.open_settings_overlay()
|
||||
|
||||
# Access refresh method through overlay manager
|
||||
overlay_manager = self.reader.overlay_manager
|
||||
# Access refresh method through active overlay sub-application
|
||||
overlay_subapp = self.reader._active_overlay
|
||||
if not overlay_subapp:
|
||||
self.skipTest("No active overlay sub-application")
|
||||
|
||||
# Change a setting programmatically
|
||||
self.reader.increase_font_size()
|
||||
new_page = self.reader.get_current_page(include_highlights=False)
|
||||
|
||||
# Refresh overlay
|
||||
refreshed_image = overlay_manager.refresh_settings_overlay(
|
||||
refreshed_image = overlay_subapp.refresh(
|
||||
updated_base_page=new_page,
|
||||
font_scale=self.reader.base_font_scale,
|
||||
line_spacing=self.reader.page_style.line_spacing,
|
||||
|
||||
@@ -44,9 +44,14 @@ class TestTOCOverlay(unittest.TestCase):
|
||||
self.reader.close()
|
||||
|
||||
def test_overlay_manager_initialization(self):
|
||||
"""Test that overlay manager is properly initialized"""
|
||||
self.assertIsNotNone(self.reader.overlay_manager)
|
||||
self.assertEqual(self.reader.overlay_manager.page_size, (800, 1200))
|
||||
"""Test that overlay sub-applications are properly initialized"""
|
||||
# Check that overlay sub-applications exist
|
||||
self.assertIsNotNone(self.reader._overlay_subapps)
|
||||
self.assertIn(OverlayState.TOC, self.reader._overlay_subapps)
|
||||
self.assertIn(OverlayState.SETTINGS, self.reader._overlay_subapps)
|
||||
self.assertIn(OverlayState.NAVIGATION, self.reader._overlay_subapps)
|
||||
|
||||
# Initially no overlay should be active
|
||||
self.assertFalse(self.reader.is_overlay_open())
|
||||
self.assertEqual(self.reader.get_overlay_state(), OverlayState.NONE)
|
||||
|
||||
@@ -298,13 +303,12 @@ class TestOverlayRendering(unittest.TestCase):
|
||||
self.assertIsNotNone(html)
|
||||
self.assertIn("Table of Contents", html)
|
||||
|
||||
# Render HTML to image using overlay manager
|
||||
overlay_manager = self.reader.overlay_manager
|
||||
image = overlay_manager.render_html_to_image(html)
|
||||
# Open the TOC overlay which internally renders HTML to image
|
||||
overlay_image = self.reader.open_toc_overlay()
|
||||
|
||||
# Should produce valid image
|
||||
self.assertIsNotNone(image)
|
||||
self.assertEqual(image.size, (800, 1200))
|
||||
self.assertIsNotNone(overlay_image)
|
||||
self.assertEqual(overlay_image.size, (800, 1200))
|
||||
|
||||
|
||||
class TestTOCPagination(unittest.TestCase):
|
||||
|
||||
Reference in New Issue
Block a user