Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / tools / telemetry / telemetry / page / page_filter_unittest.py
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.
4
5 import unittest
6
7 from telemetry.page import page
8 from telemetry.page import page_filter
9 from telemetry.page import page_set
10
11
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
18
19
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
26
27
28 class PageFilterTest(unittest.TestCase):
29   def setUp(self):
30     ps = page_set.PageSet()
31     self.p1 = page.Page(
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'])
35     self.p2 = page.Page(
36       'file://othersuite/textures/tex-sub-image-3d.html', page_set=ps,
37       name='OtherSuite.textures_tex_sub_image_3d',
38       labels=['label1'])
39     self.p3 = page.Page(
40       'file://othersuite/textures/tex-sub-image-3d.html', page_set=ps,
41       labels=['label2'])
42
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))
56
57   def testName(self):
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))
74
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))
82
83   def testLabelFilters(self):
84     # Include both labels
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))