Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / content / test / gpu / gpu_tests / screenshot_sync.py
1 # Copyright 2014 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 import os
5
6 import screenshot_sync_expectations as expectations
7
8 from telemetry import test
9 from telemetry.core import util
10 from telemetry.page import page
11 from telemetry.page import page_set
12 from telemetry.page import page_test
13 # pylint: disable=W0401,W0614
14 from telemetry.page.actions.all_page_actions import *
15
16 data_path = os.path.join(
17     util.GetChromiumSrcDir(), 'content', 'test', 'data', 'gpu')
18
19 class _ScreenshotSyncValidator(page_test.PageTest):
20   def CustomizeBrowserOptions(self, options):
21     options.AppendExtraBrowserArgs('--enable-gpu-benchmarking')
22
23   def ValidatePage(self, page, tab, results):
24     test_success = tab.EvaluateJavaScript('window.__testSuccess')
25     if not test_success:
26       message = tab.EvaluateJavaScript('window.__testMessage')
27       raise page_test.Failure(message)
28
29
30 class ScreenshotSyncPage(page.Page):
31   def __init__(self, page_set, base_dir):
32     super(ScreenshotSyncPage, self).__init__(
33       url='file://screenshot_sync.html',
34       page_set=page_set,
35       base_dir=base_dir,
36       name='ScreenshotSync')
37     self.user_agent_type = 'desktop'
38
39   def RunNavigateSteps(self, action_runner):
40     action_runner.RunAction(NavigateAction())
41     action_runner.RunAction(WaitAction({
42       'javascript': 'window.__testComplete',
43       'timeout': 120}))
44
45
46 class ScreenshotSyncProcess(test.Test):
47   """Tests that screenhots are properly synchronized with the frame one which
48   they were requested"""
49   test = _ScreenshotSyncValidator
50
51   def CreateExpectations(self, page_set):
52     return expectations.ScreenshotSyncExpectations()
53
54   def CreatePageSet(self, options):
55     ps = page_set.PageSet(
56       file_path=data_path,
57       description='Test cases for screenshot synchronization',
58       serving_dirs=[''])
59     ps.AddPage(ScreenshotSyncPage(ps, ps.base_dir))
60     return ps