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
3 # found in the LICENSE file.
9 from telemetry.core import util
10 from telemetry.page import page_set
13 class TestPageSet(unittest.TestCase):
15 def testServingDirs(self):
16 directory_path = tempfile.mkdtemp()
18 ps = page_set.PageSet(serving_dirs=['a/b'], file_path=directory_path)
19 ps.AddPageWithDefaultRunNavigate('file://c/test.html')
20 ps.AddPageWithDefaultRunNavigate('file://c/test.js')
21 ps.AddPageWithDefaultRunNavigate('file://d/e/../test.html')
23 os.rmdir(directory_path)
25 real_directory_path = os.path.realpath(directory_path)
26 expected_serving_dirs = set([os.path.join(real_directory_path, 'a', 'b')])
27 self.assertEquals(ps.serving_dirs, expected_serving_dirs)
28 self.assertEquals(ps[0].serving_dir, os.path.join(real_directory_path, 'c'))
29 self.assertEquals(ps[2].serving_dir, os.path.join(real_directory_path, 'd'))
31 def testAbsoluteServingDir(self):
32 directory_path = tempfile.mkdtemp()
34 absolute_dir = os.path.join(directory_path, 'a', 'b')
35 ps = page_set.PageSet(file_path=directory_path,
36 serving_dirs=['', directory_path, absolute_dir])
37 real_directory_path = os.path.realpath(directory_path)
38 real_absolute_dir = os.path.realpath(absolute_dir)
39 self.assertEquals(ps.serving_dirs, set([real_directory_path,
42 os.rmdir(directory_path)
44 def testSuccesfulPythonPageSetLoading(self):
45 test_pps_dir = os.path.join(util.GetUnittestDataDir(), 'test_page_set.py')
46 pps = page_set.PageSet.FromFile(test_pps_dir)
47 self.assertEqual('TestPageSet', pps.__class__.__name__)
48 self.assertEqual('A pageset for testing purpose', pps.description)
49 self.assertEqual('data/test.json', pps.archive_data_file)
50 self.assertEqual('data/credential', pps.credentials_path)
51 self.assertEqual('desktop', pps.user_agent_type)
52 self.assertEqual(test_pps_dir, pps.file_path)
53 self.assertEqual(3, len(pps.pages))
54 google_page = pps.pages[0]
55 self.assertEqual('https://www.google.com', google_page.url)
56 self.assertIs(pps, google_page.page_set)
57 self.assertTrue(5, google_page.RunGetActionRunner(action_runner=5))
59 def testMultiplePythonPageSetsLoading(self):
60 test_pps_1_dir = os.path.join(util.GetUnittestDataDir(),
61 'test_simple_one_page_set.py')
62 test_pps_2_dir = os.path.join(util.GetUnittestDataDir(),
63 'test_simple_two_page_set.py')
64 pps1 = page_set.PageSet.FromFile(test_pps_1_dir)
65 pps2 = page_set.PageSet.FromFile(test_pps_2_dir)
67 self.assertEqual('TestSimpleOnePageSet', pps1.__class__.__name__)
68 self.assertEqual('TestSimpleTwoPageSet', pps2.__class__.__name__)
70 def testPageFilePath(self):
71 test_pps_dir = os.path.join(util.GetUnittestDataDir(), 'test_page_set.py')
72 pps = page_set.PageSet.FromFile(test_pps_dir)
73 internal_page = pps.pages[1]
74 external_page = pps.pages[2]
76 os.path.normpath(os.path.join(
77 util.GetUnittestDataDir(), 'bar.html')), internal_page.file_path)
79 os.path.normpath(os.path.join(
80 util.GetUnittestDataDir(), 'pages/foo.html')), external_page.file_path)