Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / tools / telemetry / telemetry / page / page_set_unittest.py
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.
4
5 import os
6 import tempfile
7 import unittest
8
9 from telemetry.core import util
10 from telemetry.page import page_set
11
12
13 class TestPageSet(unittest.TestCase):
14
15   def testServingDirs(self):
16     directory_path = tempfile.mkdtemp()
17     try:
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')
22     finally:
23       os.rmdir(directory_path)
24
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'))
30
31   def testAbsoluteServingDir(self):
32     directory_path = tempfile.mkdtemp()
33     try:
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,
40                                               real_absolute_dir]))
41     finally:
42       os.rmdir(directory_path)
43
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))
58
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)
66
67     self.assertEqual('TestSimpleOnePageSet', pps1.__class__.__name__)
68     self.assertEqual('TestSimpleTwoPageSet', pps2.__class__.__name__)
69
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]
75     self.assertEqual(
76       os.path.normpath(os.path.join(
77         util.GetUnittestDataDir(), 'bar.html')), internal_page.file_path)
78     self.assertEqual(
79       os.path.normpath(os.path.join(
80         util.GetUnittestDataDir(), 'pages/foo.html')), external_page.file_path)