1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
7 from telemetry.page import page
8 from telemetry.page import page_filter
9 from telemetry.page import page_set
12 class MockUrlFilterOptions(object):
13 def __init__(self, page_filter_include, page_filter_exclude):
14 self.page_filter = page_filter_include
15 self.page_filter_exclude = page_filter_exclude
16 self.page_label_filter = None
17 self.page_label_filter_exclude = None
20 class MockLabelFilterOptions(object):
21 def __init__(self, page_label_filter, page_label_filter_exclude):
22 self.page_filter = None
23 self.page_filter_exclude = None
24 self.page_label_filter = page_label_filter
25 self.page_label_filter_exclude = page_label_filter_exclude
28 class PageFilterTest(unittest.TestCase):
30 ps = page_set.PageSet()
31 self.p1 = page.Page('file://conformance/textures/tex-sub-image-2d.html', ps)
32 self.p1.name = 'WebglConformance.conformance_textures_tex_sub_image_2d'
33 self.p2 = page.Page('file://othersuite/textures/tex-sub-image-3d.html', ps)
34 self.p2.name = 'OtherSuite.textures_tex_sub_image_3d'
35 self.p3 = page.Page('file://othersuite/textures/tex-sub-image-3d.html', ps)
38 def testURLPattern(self):
39 options = MockUrlFilterOptions('conformance/textures', '')
40 page_filter.PageFilter.ProcessCommandLineArgs(None, options)
41 self.assertTrue(page_filter.PageFilter.IsSelected(self.p1))
42 self.assertFalse(page_filter.PageFilter.IsSelected(self.p2))
43 options = MockUrlFilterOptions('textures', '')
44 page_filter.PageFilter.ProcessCommandLineArgs(None, options)
45 self.assertTrue(page_filter.PageFilter.IsSelected(self.p1))
46 self.assertTrue(page_filter.PageFilter.IsSelected(self.p2))
47 options = MockUrlFilterOptions('somethingelse', '')
48 page_filter.PageFilter.ProcessCommandLineArgs(None, options)
49 self.assertFalse(page_filter.PageFilter.IsSelected(self.p1))
50 self.assertFalse(page_filter.PageFilter.IsSelected(self.p2))
53 options = MockUrlFilterOptions('somethingelse', '')
54 page_filter.PageFilter.ProcessCommandLineArgs(None, options)
55 self.assertFalse(page_filter.PageFilter.IsSelected(self.p1))
56 self.assertFalse(page_filter.PageFilter.IsSelected(self.p2))
57 options = MockUrlFilterOptions('textures_tex_sub_image', '')
58 page_filter.PageFilter.ProcessCommandLineArgs(None, options)
59 self.assertTrue(page_filter.PageFilter.IsSelected(self.p1))
60 self.assertTrue(page_filter.PageFilter.IsSelected(self.p2))
61 options = MockUrlFilterOptions('WebglConformance', '')
62 page_filter.PageFilter.ProcessCommandLineArgs(None, options)
63 self.assertTrue(page_filter.PageFilter.IsSelected(self.p1))
64 self.assertFalse(page_filter.PageFilter.IsSelected(self.p2))
65 options = MockUrlFilterOptions('OtherSuite', '')
66 page_filter.PageFilter.ProcessCommandLineArgs(None, options)
67 self.assertFalse(page_filter.PageFilter.IsSelected(self.p1))
68 self.assertTrue(page_filter.PageFilter.IsSelected(self.p2))
70 def testNameNone(self):
71 options = MockUrlFilterOptions('othersuite/textures', '')
72 page_filter.PageFilter.ProcessCommandLineArgs(None, options)
73 self.assertTrue(page_filter.PageFilter.IsSelected(self.p3))
74 options = MockUrlFilterOptions('conformance/textures', '')
75 page_filter.PageFilter.ProcessCommandLineArgs(None, options)
76 self.assertFalse(page_filter.PageFilter.IsSelected(self.p3))
78 def testLabelFilters(self):
81 self.p3.label1 = False
83 self.p2.label2 = False
87 options = MockLabelFilterOptions('label1,label2', '')
88 page_filter.PageFilter.ProcessCommandLineArgs(None, options)
89 self.assertTrue(page_filter.PageFilter.IsSelected(self.p1))
90 self.assertTrue(page_filter.PageFilter.IsSelected(self.p2))
91 self.assertTrue(page_filter.PageFilter.IsSelected(self.p3))
92 # Exclude takes priority
93 options = MockLabelFilterOptions('label1', 'label2')
94 page_filter.PageFilter.ProcessCommandLineArgs(None, options)
95 self.assertFalse(page_filter.PageFilter.IsSelected(self.p1))
96 self.assertTrue(page_filter.PageFilter.IsSelected(self.p2))
97 self.assertFalse(page_filter.PageFilter.IsSelected(self.p3))