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()
32 'file://conformance/textures/tex-sub-image-2d.html', page_set=ps,
33 name='WebglConformance.conformance_textures_tex_sub_image_2d',
34 labels=['label1', 'label2'])
36 'file://othersuite/textures/tex-sub-image-3d.html', page_set=ps,
37 name='OtherSuite.textures_tex_sub_image_3d',
40 'file://othersuite/textures/tex-sub-image-3d.html', page_set=ps,
43 def testURLPattern(self):
44 options = MockUrlFilterOptions('conformance/textures', '')
45 page_filter.PageFilter.ProcessCommandLineArgs(None, options)
46 self.assertTrue(page_filter.PageFilter.IsSelected(self.p1))
47 self.assertFalse(page_filter.PageFilter.IsSelected(self.p2))
48 options = MockUrlFilterOptions('textures', '')
49 page_filter.PageFilter.ProcessCommandLineArgs(None, options)
50 self.assertTrue(page_filter.PageFilter.IsSelected(self.p1))
51 self.assertTrue(page_filter.PageFilter.IsSelected(self.p2))
52 options = MockUrlFilterOptions('somethingelse', '')
53 page_filter.PageFilter.ProcessCommandLineArgs(None, options)
54 self.assertFalse(page_filter.PageFilter.IsSelected(self.p1))
55 self.assertFalse(page_filter.PageFilter.IsSelected(self.p2))
58 options = MockUrlFilterOptions('somethingelse', '')
59 page_filter.PageFilter.ProcessCommandLineArgs(None, options)
60 self.assertFalse(page_filter.PageFilter.IsSelected(self.p1))
61 self.assertFalse(page_filter.PageFilter.IsSelected(self.p2))
62 options = MockUrlFilterOptions('textures_tex_sub_image', '')
63 page_filter.PageFilter.ProcessCommandLineArgs(None, options)
64 self.assertTrue(page_filter.PageFilter.IsSelected(self.p1))
65 self.assertTrue(page_filter.PageFilter.IsSelected(self.p2))
66 options = MockUrlFilterOptions('WebglConformance', '')
67 page_filter.PageFilter.ProcessCommandLineArgs(None, options)
68 self.assertTrue(page_filter.PageFilter.IsSelected(self.p1))
69 self.assertFalse(page_filter.PageFilter.IsSelected(self.p2))
70 options = MockUrlFilterOptions('OtherSuite', '')
71 page_filter.PageFilter.ProcessCommandLineArgs(None, options)
72 self.assertFalse(page_filter.PageFilter.IsSelected(self.p1))
73 self.assertTrue(page_filter.PageFilter.IsSelected(self.p2))
75 def testNameNone(self):
76 options = MockUrlFilterOptions('othersuite/textures', '')
77 page_filter.PageFilter.ProcessCommandLineArgs(None, options)
78 self.assertTrue(page_filter.PageFilter.IsSelected(self.p3))
79 options = MockUrlFilterOptions('conformance/textures', '')
80 page_filter.PageFilter.ProcessCommandLineArgs(None, options)
81 self.assertFalse(page_filter.PageFilter.IsSelected(self.p3))
83 def testLabelFilters(self):
85 options = MockLabelFilterOptions('label1,label2', '')
86 page_filter.PageFilter.ProcessCommandLineArgs(None, options)
87 self.assertTrue(page_filter.PageFilter.IsSelected(self.p1))
88 self.assertTrue(page_filter.PageFilter.IsSelected(self.p2))
89 self.assertTrue(page_filter.PageFilter.IsSelected(self.p3))
90 # Exclude takes priority
91 options = MockLabelFilterOptions('label1', 'label2')
92 page_filter.PageFilter.ProcessCommandLineArgs(None, options)
93 self.assertFalse(page_filter.PageFilter.IsSelected(self.p1))
94 self.assertTrue(page_filter.PageFilter.IsSelected(self.p2))
95 self.assertFalse(page_filter.PageFilter.IsSelected(self.p3))