# Copyright 2012 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import os import unittest from telemetry.page import page from telemetry.page import page_set class TestPage(unittest.TestCase): def assertPathEqual(self, path1, path2): self.assertEqual(os.path.normpath(path1), os.path.normpath(path2)) def testFilePathRelative(self): apage = page.Page('file://somedir/otherdir/file.html', None, base_dir='basedir') self.assertPathEqual(apage.file_path, 'basedir/somedir/otherdir/file.html') def testFilePathAbsolute(self): apage = page.Page('file:///somedir/otherdir/file.html', None, base_dir='basedir') self.assertPathEqual(apage.file_path, '/somedir/otherdir/file.html') def testFilePathQueryString(self): apage = page.Page('file://somedir/otherdir/file.html?key=val', None, base_dir='basedir') self.assertPathEqual(apage.file_path, 'basedir/somedir/otherdir/file.html') def testFilePathUrlQueryString(self): apage = page.Page('file://somedir/file.html?key=val', None, base_dir='basedir') self.assertPathEqual(apage.file_path_url, 'basedir/somedir/file.html?key=val') def testFilePathUrlTrailingSeparator(self): apage = page.Page('file://somedir/otherdir/', None, base_dir='basedir') self.assertPathEqual(apage.file_path_url, 'basedir/somedir/otherdir/') self.assertTrue(apage.file_path_url.endswith(os.sep) or (os.altsep and apage.file_path_url.endswith(os.altsep))) def testSort(self): ps = page_set.PageSet(file_path=os.path.dirname(__file__)) ps.AddPageWithDefaultRunNavigate('http://www.foo.com/') ps.AddPageWithDefaultRunNavigate('http://www.bar.com/') pages = [ps.pages[0], ps.pages[1]] pages.sort() self.assertEquals([ps.pages[1], ps.pages[0]], pages) def testGetUrlBaseDirAndFileForUrlBaseDir(self): ps = page_set.PageSet(file_path='basedir/', serving_dirs=['../somedir/']) ps.AddPageWithDefaultRunNavigate('file://../otherdir/file.html') self.assertPathEqual(ps[0].file_path, 'otherdir/file.html') def testDisplayUrlForHttp(self): ps = page_set.PageSet(file_path=os.path.dirname(__file__)) ps.AddPageWithDefaultRunNavigate('http://www.foo.com/') ps.AddPageWithDefaultRunNavigate('http://www.bar.com/') self.assertEquals(ps[0].display_name, 'http://www.foo.com/') self.assertEquals(ps[1].display_name, 'http://www.bar.com/') def testDisplayUrlForHttps(self): ps = page_set.PageSet(file_path=os.path.dirname(__file__)) ps.AddPageWithDefaultRunNavigate('http://www.foo.com/') ps.AddPageWithDefaultRunNavigate('https://www.bar.com/') self.assertEquals(ps[0].display_name, 'http://www.foo.com/') self.assertEquals(ps[1].display_name, 'https://www.bar.com/') def testDisplayUrlForFile(self): ps = page_set.PageSet(file_path=os.path.dirname(__file__)) ps.AddPageWithDefaultRunNavigate('file://../../otherdir/foo.html') ps.AddPageWithDefaultRunNavigate('file://../../otherdir/bar.html') self.assertEquals(ps[0].display_name, 'foo.html') self.assertEquals(ps[1].display_name, 'bar.html') def testDisplayUrlForFilesDifferingBySuffix(self): ps = page_set.PageSet(file_path=os.path.dirname(__file__)) ps.AddPageWithDefaultRunNavigate('file://../../otherdir/foo.html') ps.AddPageWithDefaultRunNavigate('file://../../otherdir/foo1.html') self.assertEquals(ps[0].display_name, 'foo.html') self.assertEquals(ps[1].display_name, 'foo1.html') def testDisplayUrlForFileOfDifferentPaths(self): ps = page_set.PageSet(file_path=os.path.dirname(__file__)) ps.AddPageWithDefaultRunNavigate('file://../../somedir/foo.html') ps.AddPageWithDefaultRunNavigate('file://../../otherdir/bar.html') self.assertEquals(ps[0].display_name, 'somedir/foo.html') self.assertEquals(ps[1].display_name, 'otherdir/bar.html') def testDisplayUrlForFileDirectories(self): ps = page_set.PageSet(file_path=os.path.dirname(__file__)) ps.AddPageWithDefaultRunNavigate('file://../../otherdir/foo') ps.AddPageWithDefaultRunNavigate('file://../../otherdir/bar') self.assertEquals(ps[0].display_name, 'foo') self.assertEquals(ps[1].display_name, 'bar') def testDisplayUrlForSingleFile(self): ps = page_set.PageSet(file_path=os.path.dirname(__file__)) ps.AddPageWithDefaultRunNavigate('file://../../otherdir/foo.html') self.assertEquals(ps[0].display_name, 'foo.html') def testDisplayUrlForSingleDirectory(self): ps = page_set.PageSet(file_path=os.path.dirname(__file__)) ps.AddPageWithDefaultRunNavigate('file://../../otherdir/foo') self.assertEquals(ps[0].display_name, 'foo')