1 # Copyright 2013 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.
7 from telemetry.core import util
8 from telemetry.unittest import tab_test_case
10 class TabConsoleTest(tab_test_case.TabTestCase):
11 def testConsoleOutputStream(self):
12 self._browser.SetHTTPServerDirectories(util.GetUnittestDataDir())
14 stream = StringIO.StringIO()
15 self._tab.message_output_stream = stream
18 self._browser.http_server.UrlOf('page_that_logs_to_console.html'))
19 self._tab.WaitForDocumentReadyStateToBeComplete()
21 initial = self._tab.EvaluateJavaScript('window.__logCount')
23 current = self._tab.EvaluateJavaScript('window.__logCount')
24 return current > initial
25 util.WaitFor(GotLog, 5)
27 lines = [l for l in stream.getvalue().split('\n') if len(l)]
29 self.assertTrue(len(lines) >= 1)
31 prefix = 'http://(.+)/page_that_logs_to_console.html:9'
32 expected_line = 'At %s: Hello, world' % prefix
33 self.assertTrue(re.match(expected_line, line))