Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / tools / telemetry / telemetry / page / page_set_unittest.py
1 # Copyright 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.page import page
10 from telemetry.page import page_set
11 from telemetry.util import cloud_storage
12
13
14 class TestPageSet(unittest.TestCase):
15
16   def testServingDirs(self):
17     directory_path = tempfile.mkdtemp()
18     try:
19       ps = page_set.PageSet(serving_dirs=['a/b'], file_path=directory_path)
20       ps.AddPageWithDefaultRunNavigate('file://c/test.html')
21       ps.AddPageWithDefaultRunNavigate('file://c/test.js')
22       ps.AddPageWithDefaultRunNavigate('file://d/e/../test.html')
23     finally:
24       os.rmdir(directory_path)
25
26     real_directory_path = os.path.realpath(directory_path)
27     expected_serving_dirs = set([os.path.join(real_directory_path, 'a', 'b')])
28     self.assertEquals(ps.serving_dirs, expected_serving_dirs)
29     self.assertEquals(ps[0].serving_dir, os.path.join(real_directory_path, 'c'))
30     self.assertEquals(ps[2].serving_dir, os.path.join(real_directory_path, 'd'))
31
32   def testAbsoluteServingDir(self):
33     directory_path = tempfile.mkdtemp()
34     try:
35       absolute_dir = os.path.join(directory_path, 'a', 'b')
36       ps = page_set.PageSet(file_path=directory_path,
37                             serving_dirs=['', directory_path, absolute_dir])
38       real_directory_path = os.path.realpath(directory_path)
39       real_absolute_dir = os.path.realpath(absolute_dir)
40       self.assertEquals(ps.serving_dirs, set([real_directory_path,
41                                               real_absolute_dir]))
42     finally:
43       os.rmdir(directory_path)
44
45   def testCloudBucket(self):
46     blank_ps = page_set.PageSet()
47     expected_bucket = None
48     self.assertEqual(blank_ps.bucket, expected_bucket)
49
50     public_ps = page_set.PageSet(bucket=page_set.PUBLIC_BUCKET)
51     expected_bucket = cloud_storage.PUBLIC_BUCKET
52     self.assertEqual(public_ps.bucket, expected_bucket)
53
54     partner_ps = page_set.PageSet(bucket=page_set.PARTNER_BUCKET)
55     expected_bucket = cloud_storage.PARTNER_BUCKET
56     self.assertEqual(partner_ps.bucket, expected_bucket)
57
58     internal_ps = page_set.PageSet(bucket=page_set.INTERNAL_BUCKET)
59     expected_bucket = cloud_storage.INTERNAL_BUCKET
60     self.assertEqual(internal_ps.bucket, expected_bucket)
61
62     self.assertRaises(ValueError, page_set.PageSet, bucket='garbage_bucket')
63
64   def testFormingPageSetFromSubPageSet(self):
65     page_set_a = page_set.PageSet()
66     pages = [
67         page.Page('http://foo.com', page_set_a),
68         page.Page('http://bar.com', page_set_a),
69         ]
70     for p in pages:
71       page_set_a.AddPage(p)
72
73     # Form page_set_b from sub page_set_a.
74     page_set_b = page_set.PageSet()
75     for p in pages:
76       p.TransferToPageSet(page_set_b)
77     page_set_b.AddPage(page.Page('http://baz.com', page_set_b))
78     self.assertEqual(0, len(page_set_a.pages))
79     self.assertEqual(
80         set(['http://foo.com', 'http://bar.com', 'http://baz.com']),
81         set(p.url for p in page_set_b.pages))
82     for p in page_set_b.pages:
83       self.assertIs(page_set_b, p.page_set)