Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: tools/telemetry/telemetry/page/page_set_unittest.py

Issue 180873008: Add support for python pageset (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove attributes from page constructor Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/telemetry/telemetry/page/page_set.py ('k') | tools/telemetry/telemetry/page/page_test.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import os 5 import os
6 import tempfile 6 import tempfile
7 import unittest 7 import unittest
8 8
9 from telemetry.core import util
9 from telemetry.page import page_set 10 from telemetry.page import page_set
10 11
11 12
12 simple_archive_info = """ 13 simple_archive_info = """
13 { 14 {
14 "archives": { 15 "archives": {
15 "data_01.wpr": ["http://www.foo.com/"], 16 "data_01.wpr": ["http://www.foo.com/"],
16 "data_02.wpr": ["http://www.bar.com/"] 17 "data_02.wpr": ["http://www.bar.com/"]
17 } 18 }
18 } 19 }
19 """ 20 """
20 21
21 22
22 simple_set = """ 23 simple_set = """
23 {"description": "hello", 24 {"description": "hello",
24 "archive_data_file": "%s", 25 "archive_data_file": "%s",
25 "pages": [ 26 "pages": [
26 {"url": "http://www.foo.com/"}, 27 {"url": "http://www.foo.com/"},
27 {"url": "http://www.bar.com/"} 28 {"url": "http://www.bar.com/"}
28 ] 29 ]
29 } 30 }
30 """ 31 """
31 32
32 33
33 class TestPageSet(unittest.TestCase): 34 class TestPageSet(unittest.TestCase):
34 def testSimpleSet(self): 35 def testSimpleSet(self):
35 try: 36 try:
36 with tempfile.NamedTemporaryFile(delete=False) as f: 37 with tempfile.NamedTemporaryFile(delete=False, suffix=".json") as f:
37 f.write(simple_archive_info) 38 f.write(simple_archive_info)
38 39
39 with tempfile.NamedTemporaryFile(delete=False) as f2: 40 with tempfile.NamedTemporaryFile(delete=False, suffix=".json") as f2:
40 f2.write(simple_set % f.name.replace('\\', '\\\\')) 41 f2.write(simple_set % f.name.replace('\\', '\\\\'))
41 42
42 ps = page_set.PageSet.FromFile(f2.name) 43 ps = page_set.PageSet.FromFile(f2.name)
43 finally: 44 finally:
44 os.remove(f.name) 45 os.remove(f.name)
45 os.remove(f2.name) 46 os.remove(f2.name)
46 47
47 self.assertEquals('hello', ps.description) 48 self.assertEquals('hello', ps.description)
48 self.assertEquals(f.name, ps.archive_data_file) 49 self.assertEquals(f.name, ps.archive_data_file)
49 self.assertEquals(2, len(ps.pages)) 50 self.assertEquals(2, len(ps.pages))
(...skipping 29 matching lines...) Expand all
79 'pages': [ 80 'pages': [
80 {'url': 'http://www.foo.com', 81 {'url': 'http://www.foo.com',
81 'stress_memory': {'action': 'javasciprt'} 82 'stress_memory': {'action': 'javasciprt'}
82 }, 83 },
83 {'url': 'http://www.bar.com', 84 {'url': 'http://www.bar.com',
84 'navigate_steps': {'action': 'navigate2'}, 85 'navigate_steps': {'action': 'navigate2'},
85 'repaint' : {'action': 'scroll'} 86 'repaint' : {'action': 'scroll'}
86 }, 87 },
87 ]}, 'file://foo.js') 88 ]}, 'file://foo.js')
88 89
89 self.assertEquals(ps.pages[0].RunNavigateSteps, {'action': 'navigate'}) 90 self.assertTrue(hasattr(ps.pages[0], 'RunNavigateSteps'))
90 self.assertEquals(ps.pages[0].RunSmoothness, {'action': 'scroll'}) 91 self.assertEquals(ps.pages[0].RunSmoothness, {'action': 'scroll'})
91 self.assertEquals(ps.pages[0].RunStressMemory, {'action': 'javasciprt'}) 92 self.assertEquals(ps.pages[0].RunStressMemory, {'action': 'javasciprt'})
92 93
93 self.assertEquals(ps.pages[1].RunSmoothness, {'action': 'scroll'}) 94 self.assertEquals(ps.pages[1].RunSmoothness, {'action': 'scroll'})
94 self.assertEquals(ps.pages[1].RunNavigateSteps, {'action': 'navigate2'}) 95 self.assertEquals(ps.pages[1].RunNavigateSteps, {'action': 'navigate2'})
95 self.assertEquals(ps.pages[1].RunRepaint, {'action': 'scroll'}) 96 self.assertEquals(ps.pages[1].RunRepaint, {'action': 'scroll'})
97
98 def testRunNavigateStepsInheritance(self):
99 ps = page_set.PageSet.FromDict({
100 'serving_dirs': ['a/b'],
101 'navigate_steps' : { 'action' : 'navigate1' },
102 'pages': [
103 {'url': 'http://www.foo.com',
104 },
105 {'url': 'http://www.bar.com',
106 'navigate_steps': {'action': 'navigate2'},
107 },
108 ]}, 'file://foo.js')
109
110 self.assertEquals(ps.pages[0].RunNavigateSteps, {'action': 'navigate1'})
111 self.assertEquals(ps.pages[1].RunNavigateSteps, {'action': 'navigate2'})
112
113
114 def testSuccesfulPythonPageSetLoading(self):
115 test_pps_dir = os.path.join(util.GetUnittestDataDir(), 'test_page_set.py')
116 pps = page_set.PageSet.FromFile(test_pps_dir)
117 self.assertEqual('TestPageSet', pps.__class__.__name__)
118 self.assertEqual('A pageset for testing purpose', pps.description)
119 self.assertEqual('data/test.json', pps.archive_data_file)
120 self.assertEqual('data/credential', pps.credentials_path)
121 self.assertEqual('desktop', pps.user_agent_type)
122 self.assertEqual(test_pps_dir, pps.file_path)
123 self.assertEqual(1, len(pps.pages))
124 google_page = pps.pages[0]
125 self.assertEqual('https://www.google.com', google_page.url)
126 self.assertIs(pps, google_page.page_set)
127 self.assertTrue(hasattr(google_page, 'RunNavigateSteps'))
128 self.assertTrue(5, google_page.RunGetActionRunner(action_runner=5))
129
130 def testMultiplePythonPageSetsLoading(self):
131 test_pps_1_dir = os.path.join(util.GetUnittestDataDir(),
132 'test_simple_one_page_set.py')
133 test_pps_2_dir = os.path.join(util.GetUnittestDataDir(),
134 'test_simple_two_page_set.py')
135 pps1 = page_set.PageSet.FromFile(test_pps_1_dir)
136 pps2 = page_set.PageSet.FromFile(test_pps_2_dir)
137
138 self.assertEqual('TestSimpleOnePageSet', pps1.__class__.__name__)
139 self.assertEqual('TestSimpleTwoPageSet', pps2.__class__.__name__)
OLDNEW
« no previous file with comments | « tools/telemetry/telemetry/page/page_set.py ('k') | tools/telemetry/telemetry/page/page_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698