blob: c60c59df5fb742be0d1fe8751b66d4c15951b04e [file] [log] [blame]
# 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')
def testPagesHaveDifferentIds(self):
p0 = page.Page("http://example.com")
p1 = page.Page("http://example.com")
self.assertNotEqual(p0.id, p1.id)
def testNamelessPageAsDict(self):
nameless_dict = page.Page('http://example.com/').AsDict()
self.assertIn('id', nameless_dict)
del nameless_dict['id']
self.assertEquals({
'url': 'http://example.com/',
}, nameless_dict)
def testNamedPageAsDict(self):
named_dict = page.Page('http://example.com/', name='Example').AsDict()
self.assertIn('id', named_dict)
del named_dict['id']
self.assertEquals({
'url': 'http://example.com/',
'name': 'Example'
}, named_dict)