blob: ec85cc81d3b23e3cca86ee5b27a2494b8a3840af [file] [log] [blame]
# Copyright (c) 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 re
import StringIO
from telemetry.core import util
from telemetry.unittest import tab_test_case
class TabConsoleTest(tab_test_case.TabTestCase):
def testConsoleOutputStream(self):
self._browser.SetHTTPServerDirectories(util.GetUnittestDataDir())
stream = StringIO.StringIO()
self._tab.message_output_stream = stream
self._tab.Navigate(
self._browser.http_server.UrlOf('page_that_logs_to_console.html'))
self._tab.WaitForDocumentReadyStateToBeComplete()
initial = self._tab.EvaluateJavaScript('window.__logCount')
def GotLog():
current = self._tab.EvaluateJavaScript('window.__logCount')
return current > initial
util.WaitFor(GotLog, 5)
lines = [l for l in stream.getvalue().split('\n') if len(l)]
self.assertTrue(len(lines) >= 1)
for line in lines:
prefix = 'http://(.+)/page_that_logs_to_console.html:9'
expected_line = 'At %s: Hello, world' % prefix
self.assertTrue(re.match(expected_line, line))