OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 | 2 |
3 # Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. | 3 # Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. |
4 # | 4 # |
5 # Redistribution and use in source and binary forms, with or without | 5 # Redistribution and use in source and binary forms, with or without |
6 # modification, are permitted provided that the following conditions | 6 # modification, are permitted provided that the following conditions |
7 # are met: | 7 # are met: |
8 # | 8 # |
9 # 1. Redistributions of source code must retain the above | 9 # 1. Redistributions of source code must retain the above |
10 # copyright notice, this list of conditions and the following | 10 # copyright notice, this list of conditions and the following |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 <link rel="match" href="orange-box-ref.xht" /> | 62 <link rel="match" href="orange-box-ref.xht" /> |
63 </head> | 63 </head> |
64 """ | 64 """ |
65 oc = OutputCapture() | 65 oc = OutputCapture() |
66 oc.capture_output() | 66 oc.capture_output() |
67 try: | 67 try: |
68 test_path = '/some/madeup/path/' | 68 test_path = '/some/madeup/path/' |
69 parser = TestParser(options, test_path + 'somefile.html') | 69 parser = TestParser(options, test_path + 'somefile.html') |
70 test_info = parser.analyze_test(test_contents=test_html) | 70 test_info = parser.analyze_test(test_contents=test_html) |
71 finally: | 71 finally: |
72 output, _, _ = oc.restore_output() | 72 _, _, logs = oc.restore_output() |
73 | 73 |
74 self.assertNotEqual(test_info, None, 'did not find a test') | 74 self.assertNotEqual(test_info, None, 'did not find a test') |
75 self.assertTrue('test' in test_info.keys(), 'did not find a test file') | 75 self.assertTrue('test' in test_info.keys(), 'did not find a test file') |
76 self.assertTrue('reference' in test_info.keys(), 'did not find a referen
ce file') | 76 self.assertTrue('reference' in test_info.keys(), 'did not find a referen
ce file') |
77 self.assertTrue(test_info['reference'].startswith(test_path), 'reference
path is not correct') | 77 self.assertTrue(test_info['reference'].startswith(test_path), 'reference
path is not correct') |
78 self.assertFalse('refsupport' in test_info.keys(), 'there should be no r
efsupport files for this test') | 78 self.assertFalse('refsupport' in test_info.keys(), 'there should be no r
efsupport files for this test') |
79 self.assertFalse('jstest' in test_info.keys(), 'test should not have bee
n analyzed as a jstest') | 79 self.assertFalse('jstest' in test_info.keys(), 'test should not have bee
n analyzed as a jstest') |
80 | 80 |
81 self.assertTrue(output.startswith('Warning'), 'no warning about multiple
matches') | 81 self.assertEqual(logs, 'Multiple references are not supported. Importing
the first ref defined in somefile.html\n') |
82 | 82 |
83 def test_analyze_test_reftest_match_and_mismatch(self): | 83 def test_analyze_test_reftest_match_and_mismatch(self): |
84 test_html = """<head> | 84 test_html = """<head> |
85 <link rel="match" href="green-box-ref.xht" /> | 85 <link rel="match" href="green-box-ref.xht" /> |
86 <link rel="match" href="blue-box-ref.xht" /> | 86 <link rel="match" href="blue-box-ref.xht" /> |
87 <link rel="mismatch" href="orange-box-notref.xht" /> | 87 <link rel="mismatch" href="orange-box-notref.xht" /> |
88 </head> | 88 </head> |
89 """ | 89 """ |
90 oc = OutputCapture() | 90 oc = OutputCapture() |
91 oc.capture_output() | 91 oc.capture_output() |
92 | 92 |
93 try: | 93 try: |
94 test_path = '/some/madeup/path/' | 94 test_path = '/some/madeup/path/' |
95 parser = TestParser(options, test_path + 'somefile.html') | 95 parser = TestParser(options, test_path + 'somefile.html') |
96 test_info = parser.analyze_test(test_contents=test_html) | 96 test_info = parser.analyze_test(test_contents=test_html) |
97 finally: | 97 finally: |
98 output, _, _ = oc.restore_output() | 98 _, _, logs = oc.restore_output() |
99 | 99 |
100 self.assertNotEqual(test_info, None, 'did not find a test') | 100 self.assertNotEqual(test_info, None, 'did not find a test') |
101 self.assertTrue('test' in test_info.keys(), 'did not find a test file') | 101 self.assertTrue('test' in test_info.keys(), 'did not find a test file') |
102 self.assertTrue('reference' in test_info.keys(), 'did not find a referen
ce file') | 102 self.assertTrue('reference' in test_info.keys(), 'did not find a referen
ce file') |
103 self.assertTrue(test_info['reference'].startswith(test_path), 'reference
path is not correct') | 103 self.assertTrue(test_info['reference'].startswith(test_path), 'reference
path is not correct') |
104 self.assertFalse('refsupport' in test_info.keys(), 'there should be no r
efsupport files for this test') | 104 self.assertFalse('refsupport' in test_info.keys(), 'there should be no r
efsupport files for this test') |
105 self.assertFalse('jstest' in test_info.keys(), 'test should not have bee
n analyzed as a jstest') | 105 self.assertFalse('jstest' in test_info.keys(), 'test should not have bee
n analyzed as a jstest') |
106 | 106 |
107 warnings = output.splitlines() | 107 self.assertEqual(logs, 'Multiple references are not supported. Importing
the first ref defined in somefile.html\n') |
108 self.assertEquals(warnings, ["Warning: Webkit does not support multiple
references. Importing the first ref defined in somefile.html"]) | |
109 | 108 |
110 def test_analyze_test_reftest_with_ref_support_Files(self): | 109 def test_analyze_test_reftest_with_ref_support_Files(self): |
111 """ Tests analyze_test() using a reftest that has refers to a reference
file outside of the tests directory and the reference file has paths to other su
pport files """ | 110 """ Tests analyze_test() using a reftest that has refers to a reference
file outside of the tests directory and the reference file has paths to other su
pport files """ |
112 | 111 |
113 test_html = """<html> | 112 test_html = """<html> |
114 <head> | 113 <head> |
115 <link rel="match" href="../reference/green-box-ref.xht" /> | 114 <link rel="match" href="../reference/green-box-ref.xht" /> |
116 </head> | 115 </head> |
117 """ | 116 """ |
118 ref_html = """<head> | 117 ref_html = """<head> |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 test_info = parser.analyze_test(test_contents=test_html) | 208 test_info = parser.analyze_test(test_contents=test_html) |
210 | 209 |
211 self.assertEqual(test_info, None, 'test should have been skipped') | 210 self.assertEqual(test_info, None, 'test should have been skipped') |
212 | 211 |
213 def test_analyze_non_html_file(self): | 212 def test_analyze_non_html_file(self): |
214 """ Tests analyze_test() with a file that has no html""" | 213 """ Tests analyze_test() with a file that has no html""" |
215 # FIXME: use a mock filesystem | 214 # FIXME: use a mock filesystem |
216 parser = TestParser(options, os.path.join(os.path.dirname(__file__), 'te
st_parser.py')) | 215 parser = TestParser(options, os.path.join(os.path.dirname(__file__), 'te
st_parser.py')) |
217 test_info = parser.analyze_test() | 216 test_info = parser.analyze_test() |
218 self.assertEqual(test_info, None, 'no tests should have been found in th
is file') | 217 self.assertEqual(test_info, None, 'no tests should have been found in th
is file') |
OLD | NEW |