Index: tools/perf/profile_creators/fast_navigation_profile_extender_unittest.py |
diff --git a/tools/perf/profile_creators/fast_navigation_profile_extender_unittest.py b/tools/perf/profile_creators/fast_navigation_profile_extender_unittest.py |
index 06ade0c0137766aae51a30c3de81275f2667f837..2a2af9d779e7da4ecb73a5eb94af6e605c8a402c 100644 |
--- a/tools/perf/profile_creators/fast_navigation_profile_extender_unittest.py |
+++ b/tools/perf/profile_creators/fast_navigation_profile_extender_unittest.py |
@@ -26,45 +26,53 @@ class FakeBrowser(object): |
# pylint: disable=protected-access |
class FastNavigationProfileExtenderTest(unittest.TestCase): |
def testPerformNavigations(self): |
- extender = FastNavigationProfileExtender() |
- num_urls = extender._NUM_PARALLEL_PAGES * 3 + 4 |
- num_tabs = extender._NUM_TABS |
+ maximum_batch_size = 15 |
+ extender = FastNavigationProfileExtender(maximum_batch_size) |
navigation_urls = [] |
- for i in range(num_urls): |
+ for i in range(extender._NUM_TABS): |
navigation_urls.append('http://test%s.com' % i) |
+ batch_size = 5 |
+ navigation_urls_batch = navigation_urls[3:3 + batch_size] |
- extender._navigation_urls = navigation_urls |
- extender._browser = FakeBrowser(num_tabs) |
+ extender.GetUrlIterator = mock.MagicMock( |
+ return_value=iter(navigation_urls_batch)) |
+ extender.ShouldExitAfterBatchNavigation = mock.MagicMock(return_value=True) |
extender._WaitForQueuedTabsToLoad = mock.MagicMock() |
+ |
+ extender._browser = FakeBrowser(extender._NUM_TABS) |
extender._BatchNavigateTabs = mock.MagicMock() |
# Set up a callback to record the tabs and urls in each navigation. |
- batch_callback_tabs = [] |
- batch_callback_urls = [] |
+ callback_tabs_batch = [] |
+ callback_urls_batch = [] |
def SideEffect(*args, **_): |
batch = args[0] |
for tab, url in batch: |
- batch_callback_tabs.append(tab) |
- batch_callback_urls.append(url) |
+ callback_tabs_batch.append(tab) |
+ callback_urls_batch.append(url) |
extender._BatchNavigateTabs.side_effect = SideEffect |
# Perform the navigations. |
extender._PerformNavigations() |
- # Each url should have been navigated to exactly once. |
- self.assertEqual(set(batch_callback_urls), set(navigation_urls)) |
+ # Each url in the batch should have been navigated to exactly once. |
+ self.assertEqual(set(callback_urls_batch), set(navigation_urls_batch)) |
+ |
+ # The other urls should not have been navigated to. |
+ navigation_urls_remaining = (set(navigation_urls) - |
+ set(navigation_urls_batch)) |
+ self.assertFalse(navigation_urls_remaining & set(callback_urls_batch)) |
- # The first 4 tabs should have been navigated 4 times. The remaining tabs |
- # should have been navigated 3 times. |
- num_navigations_per_tab = 3 |
- num_tabs_with_one_extra_navigation = 4 |
+ # The first couple of tabs should have been navigated once. The remaining |
+ # tabs should not have been navigated. |
for i in range(len(extender._browser.tabs)): |
tab = extender._browser.tabs[i] |
- expected_tab_navigation_count = num_navigations_per_tab |
- if i < num_tabs_with_one_extra_navigation: |
- expected_tab_navigation_count += 1 |
+ if i < batch_size: |
+ expected_tab_navigation_count = 1 |
+ else: |
+ expected_tab_navigation_count = 0 |
- count = batch_callback_tabs.count(tab) |
+ count = callback_tabs_batch.count(tab) |
self.assertEqual(count, expected_tab_navigation_count) |