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.
9 from telemetry.page import page
10 from telemetry.page import page_set
11 from telemetry.util import cloud_storage
14 class TestPageSet(unittest.TestCase):
16 def testServingDirs(self):
17 directory_path = tempfile.mkdtemp()
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')
24 os.rmdir(directory_path)
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'))
32 def testAbsoluteServingDir(self):
33 directory_path = tempfile.mkdtemp()
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,
43 os.rmdir(directory_path)
45 def testCloudBucket(self):
46 blank_ps = page_set.PageSet()
47 expected_bucket = None
48 self.assertEqual(blank_ps.bucket, expected_bucket)
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)
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)
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)
62 self.assertRaises(ValueError, page_set.PageSet, bucket='garbage_bucket')
64 def testFormingPageSetFromSubPageSet(self):
65 page_set_a = page_set.PageSet()
67 page.Page('http://foo.com', page_set_a),
68 page.Page('http://bar.com', page_set_a),
73 # Form page_set_b from sub page_set_a.
74 page_set_b = page_set.PageSet()
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))
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)