Home | History | Annotate | Download | only in layout_tests
      1 #!/usr/bin/env python
      2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
      3 # Use of this source code is governed by a BSD-style license that can be
      4 # found in the LICENSE file.
      5 
      6 from datetime import datetime
      7 
      8 import calendar
      9 import unittest
     10 
     11 
     12 from test_expectations_history import TestExpectationsHistory
     13 
     14 
     15 class TestTestExpectationsHistory(unittest.TestCase):
     16   """Unit tests for the TestExpectationsHistory class."""
     17 
     18   def AssertTestName(self, result_list, testname):
     19     """Assert test name in the result_list.
     20 
     21     Args:
     22       result_list: a result list of tuples returned by
     23           |GetDiffBetweenTimesOnly1Diff()|. Each tuple consists of
     24           (old_rev, new_rev, author, date, message, lines) where
     25           |lines| are the entries in the test expectation file.
     26       testname: a testname string.
     27 
     28     Returns:
     29       True if the result contains the testname, False otherwise.
     30     """
     31     for (_, _, _, _, _, lines) in result_list:
     32       if any([testname in line for line in lines]):
     33         return True
     34     return False
     35 
     36   # These tests use the following commit.
     37   # commit 235788e3a4fc71342a5c9fefe67ce9537706ce35
     38   # Author: rniwa (at] webkit.org
     39   # Date:   Sat Aug 20 06:19:11 2011 +0000
     40 
     41   def testGetDiffBetweenTimes(self):
     42     ptime = calendar.timegm((2011, 8, 20, 0, 0, 0, 0, 0, 0))
     43     ctime = calendar.timegm((2011, 8, 21, 0, 0, 0, 0, 0, 0))
     44     testname = 'fast/css/getComputedStyle/computed-style-without-renderer.html'
     45     testname_list = [testname]
     46     result_list = TestExpectationsHistory.GetDiffBetweenTimes(
     47         ptime, ctime, testname_list)
     48     self.assertTrue(self.AssertTestName(result_list, testname))
     49 
     50   def testGetDiffBetweenTimesOnly1Diff(self):
     51     ptime = calendar.timegm((2011, 8, 20, 6, 0, 0, 0, 0, 0))
     52     ctime = calendar.timegm((2011, 8, 20, 7, 0, 0, 0, 0, 0))
     53     testname = 'fast/css/getComputedStyle/computed-style-without-renderer.html'
     54     testname_list = [testname]
     55     result_list = TestExpectationsHistory.GetDiffBetweenTimes(
     56         ptime, ctime, testname_list)
     57     self.assertTrue(self.AssertTestName(result_list, testname))
     58 
     59   def testGetDiffBetweenTimesOnly1DiffWithGobackSeveralDays(self):
     60     ptime = calendar.timegm((2011, 9, 12, 1, 0, 0, 0, 0, 0))
     61     ctime = calendar.timegm((2011, 9, 12, 2, 0, 0, 0, 0, 0))
     62     testname = 'media/video-zoom-controls.html'
     63     testname_list = [testname]
     64     result_list = TestExpectationsHistory.GetDiffBetweenTimes(
     65         ptime, ctime, testname_list)
     66     self.assertTrue(self.AssertTestName(result_list, testname))
     67 
     68 
     69 if __name__ == '__main__':
     70   unittest.main()
     71