| Index: tools/telemetry/telemetry/page/page_test_results_unittest.py
 | 
| diff --git a/tools/telemetry/telemetry/page/page_test_results_unittest.py b/tools/telemetry/telemetry/page/page_test_results_unittest.py
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..03a9526f4adadf82f8554ed7d0fcd81d72d8d586
 | 
| --- /dev/null
 | 
| +++ b/tools/telemetry/telemetry/page/page_test_results_unittest.py
 | 
| @@ -0,0 +1,67 @@
 | 
| +# Copyright (c) 2013 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 sys
 | 
| +import unittest
 | 
| +
 | 
| +from telemetry.page import page_test_results
 | 
| +from telemetry.page import page_set
 | 
| +
 | 
| +class NonPrintingPageTestResults(
 | 
| +    page_test_results.PageTestResults):
 | 
| +  def __init__(self):
 | 
| +    super(NonPrintingPageTestResults, self).__init__()
 | 
| +
 | 
| +  def _PrintPerfResult(self, *args):
 | 
| +    pass
 | 
| +
 | 
| +class PageTestResultsTest(unittest.TestCase):
 | 
| +  def setUp(self):
 | 
| +    self.page_set = page_set.PageSet.FromDict({
 | 
| +        "description": "hello",
 | 
| +        "archive_path": "foo.wpr",
 | 
| +        "pages": [
 | 
| +          {"url": "http://www.bar.com/"},
 | 
| +          {"url": "http://www.baz.com/"},
 | 
| +          {"url": "http://www.foo.com/"}
 | 
| +          ]
 | 
| +        }, os.path.dirname(__file__))
 | 
| +
 | 
| +  @property
 | 
| +  def pages(self):
 | 
| +    return self.page_set.pages
 | 
| +
 | 
| +  def CreateException(self):
 | 
| +    try:
 | 
| +      raise Exception('Intentional exception')
 | 
| +    except Exception:
 | 
| +      return sys.exc_info()
 | 
| +
 | 
| +  def test_failures(self):
 | 
| +    results = NonPrintingPageTestResults()
 | 
| +    results.AddFailure(self.pages[0], self.CreateException())
 | 
| +    results.AddSuccess(self.pages[1])
 | 
| +    self.assertEquals(results.pages_that_had_failures,
 | 
| +                      set([self.pages[0]]))
 | 
| +    self.assertEquals(results.successes,
 | 
| +                      [self.pages[1].display_name])
 | 
| +
 | 
| +  def test_errors(self):
 | 
| +    results = NonPrintingPageTestResults()
 | 
| +    results.AddError(self.pages[0], self.CreateException())
 | 
| +    results.AddSuccess(self.pages[1])
 | 
| +    self.assertEquals(results.pages_that_had_errors,
 | 
| +                      set([self.pages[0]]))
 | 
| +    self.assertEquals(results.successes,
 | 
| +                      [self.pages[1].display_name])
 | 
| +
 | 
| +  def test_errors_and_failures(self):
 | 
| +    results = NonPrintingPageTestResults()
 | 
| +    results.AddError(self.pages[0], self.CreateException())
 | 
| +    results.AddError(self.pages[1], self.CreateException())
 | 
| +    results.AddSuccess(self.pages[2])
 | 
| +    self.assertEquals(results.pages_that_had_errors_or_failures,
 | 
| +                      set([self.pages[0], self.pages[1]]))
 | 
| +    self.assertEquals(results.successes,
 | 
| +                      [self.pages[2].display_name])
 | 
| 
 |