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
6import unittest
7
8from layouttests import LayoutTests
9from test_expectations import TestExpectations
10
11
12class TestLayoutTests(unittest.TestCase):
13  """Unit tests for the LayoutTests class."""
14
15  def testJoinWithTestExpectation(self):
16    layouttests = LayoutTests(parent_location_list=['media/'])
17    test_expectations = TestExpectations()
18    test_info_map = layouttests.JoinWithTestExpectation(test_expectations)
19    # TODO(imasaki): have better assertion below. Currently, the test
20    # expectation file is obtained dynamically so the strict assertion is
21    # impossible.
22    self.assertTrue(any(['media/' in k for k in test_info_map.keys()]),
23                    msg=('Analyzer result should contain at least one '
24                         'media test cases since we only retrieved media '
25                         'related test'))
26
27  def testGetTestDescriptionsFromSVN(self):
28    desc1 = LayoutTests.GetTestDescriptionFromSVN(
29        'media/video-play-empty-events.html')
30    self.assertEquals(desc1,
31                      ('Test that play() from EMPTY network state triggers '
32                       'load() and async play event.'),
33                      msg='Extracted test description is wrong')
34    desc2 = LayoutTests.GetTestDescriptionFromSVN('jquery/data.html')
35    self.assertEquals(desc2, 'UNKNOWN',
36                      msg='Extracted test description is wrong')
37
38  def testGetParentDirectoryList(self):
39    testname_list = ['hoge1/hoge2/hoge3.html', 'hoge1/x.html',
40                     'hoge1/hoge2/hoge4.html']
41    expected_result = ['hoge1/', 'hoge1/hoge2/']
42    self.assertEquals(LayoutTests.GetParentDirectoryList(testname_list),
43                      expected_result)
44
45
46if __name__ == '__main__':
47  unittest.main()
48