15f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)# Copyright 2014 The Chromium Authors. All rights reserved.
25f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
35f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)# found in the LICENSE file.
45f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)import os
65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)import unittest
75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
85f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)from telemetry.page import page_set
95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)from telemetry.results import page_run
105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)from telemetry.value import failure
115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)from telemetry.value import scalar
125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)from telemetry.value import skip
135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class PageRunTest(unittest.TestCase):
165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  def setUp(self):
175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    self.page_set = page_set.PageSet(file_path=os.path.dirname(__file__))
185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    self.page_set.AddPageWithDefaultRunNavigate("http://www.bar.com/")
195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  @property
215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  def pages(self):
225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    return self.page_set.pages
235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  def testPageRunFailed(self):
255f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    run = page_run.PageRun(self.pages[0])
265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    run.AddValue(failure.FailureValue.FromMessage(self.pages[0], 'test'))
275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    self.assertFalse(run.ok)
285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    self.assertTrue(run.failed)
295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    self.assertFalse(run.skipped)
305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    run = page_run.PageRun(self.pages[0])
325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    run.AddValue(scalar.ScalarValue(self.pages[0], 'a', 's', 1))
335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    run.AddValue(failure.FailureValue.FromMessage(self.pages[0], 'test'))
345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    self.assertFalse(run.ok)
355f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    self.assertTrue(run.failed)
365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    self.assertFalse(run.skipped)
375f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
385f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  def testPageRunSkipped(self):
395f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    run = page_run.PageRun(self.pages[0])
405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    run.AddValue(failure.FailureValue.FromMessage(self.pages[0], 'test'))
415f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    run.AddValue(skip.SkipValue(self.pages[0], 'test'))
425f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    self.assertFalse(run.ok)
435f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    self.assertFalse(run.failed)
445f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    self.assertTrue(run.skipped)
455f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
465f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    run = page_run.PageRun(self.pages[0])
475f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    run.AddValue(scalar.ScalarValue(self.pages[0], 'a', 's', 1))
485f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    run.AddValue(skip.SkipValue(self.pages[0], 'test'))
495f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    self.assertFalse(run.ok)
505f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    self.assertFalse(run.failed)
515f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    self.assertTrue(run.skipped)
525f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
535f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  def testPageRunSucceeded(self):
545f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    run = page_run.PageRun(self.pages[0])
555f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    self.assertTrue(run.ok)
565f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    self.assertFalse(run.failed)
575f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    self.assertFalse(run.skipped)
585f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
595f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    run = page_run.PageRun(self.pages[0])
605f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    run.AddValue(scalar.ScalarValue(self.pages[0], 'a', 's', 1))
615f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    self.assertTrue(run.ok)
625f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    self.assertFalse(run.failed)
635f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    self.assertFalse(run.skipped)
64