1a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch# Copyright 2014 The Chromium Authors. All rights reserved. 2a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch# Use of this source code is governed by a BSD-style license that can be 3a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch# found in the LICENSE file. 4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)import logging 5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 6a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochfrom telemetry.page import page as page_module 7a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochfrom telemetry.page import page_set as page_set_module 8a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 9a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 10010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)class ToughWebglCasesPage(page_module.Page): 11a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 12a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch def __init__(self, url, page_set): 13a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch super(ToughWebglCasesPage, self).__init__(url=url, page_set=page_set) 14a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch self.archive_data_file = 'data/tough_webgl_cases.json' 15a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) def CanRunOnBrowser(self, browser_info): 17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) if not browser_info.HasWebGLSupport(): 18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) logging.warning('Browser does not support webgl, skipping test') 19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return False 20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return True 21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 22a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch def RunNavigateSteps(self, action_runner): 23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) action_runner.NavigateToPage(self) 24f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) action_runner.WaitForJavaScriptCondition( 25f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 'document.readyState == "complete"') 26f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) action_runner.Wait(2) 27a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 28a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch def RunSmoothness(self, action_runner): 29f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) action_runner.Wait(5) 30a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 31a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 32a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochclass ToughWebglCasesPageSet(page_set_module.PageSet): 33a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 34a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch """ 35a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch Description: Self-driven WebGL animation examples 36a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch """ 37a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 38a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch def __init__(self): 39a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch super(ToughWebglCasesPageSet, self).__init__( 40a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch archive_data_file='data/tough_webgl_cases.json') 41a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 42a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch urls_list = [ 43a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch # pylint: disable=C0301 44a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 'http://www.khronos.org/registry/webgl/sdk/demos/google/nvidia-vertex-buffer-object/index.html', 45a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch # pylint: disable=C0301 46a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 'http://www.khronos.org/registry/webgl/sdk/demos/google/san-angeles/index.html', 47a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch # pylint: disable=C0301 48a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 'http://www.khronos.org/registry/webgl/sdk/demos/google/particles/index.html', 49a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 'http://www.khronos.org/registry/webgl/sdk/demos/webkit/Earth.html', 50a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch # pylint: disable=C0301 51a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 'http://www.khronos.org/registry/webgl/sdk/demos/webkit/ManyPlanetsDeep.html', 52a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 'http://webglsamples.googlecode.com/hg/aquarium/aquarium.html', 53a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 'http://webglsamples.googlecode.com/hg/blob/blob.html', 54a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch # pylint: disable=C0301 55a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 'http://webglsamples.googlecode.com/hg/dynamic-cubemap/dynamic-cubemap.html' 56a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch ] 57a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch for url in urls_list: 58a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch self.AddPage(ToughWebglCasesPage(url, self)) 59