| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright 2014 The Chromium Authors. All rights reserved. | 2 # Copyright 2014 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 """Test resources processing, i.e. <if> and <include> tag handling.""" |
| 7 |
| 6 import unittest | 8 import unittest |
| 7 from processor import FileCache, Processor, LineNumber | 9 from processor import FileCache, Processor, LineNumber |
| 8 | 10 |
| 9 | 11 |
| 10 class ProcessorTest(unittest.TestCase): | 12 class ProcessorTest(unittest.TestCase): |
| 13 """Test <include> tag processing logic.""" |
| 14 |
| 11 def __init__(self, *args, **kwargs): | 15 def __init__(self, *args, **kwargs): |
| 12 unittest.TestCase.__init__(self, *args, **kwargs) | 16 unittest.TestCase.__init__(self, *args, **kwargs) |
| 13 self.maxDiff = None | 17 self.maxDiff = None |
| 14 | 18 |
| 15 def setUp(self): | 19 def setUp(self): |
| 16 FileCache._cache["/debug.js"] = """ | 20 FileCache._cache["/debug.js"] = """ |
| 17 // Copyright 2002 Older Chromium Author dudes. | 21 // Copyright 2002 Older Chromium Author dudes. |
| 18 function debug(msg) { if (window.DEBUG) alert(msg); } | 22 function debug(msg) { if (window.DEBUG) alert(msg); } |
| 19 """.strip() | 23 """.strip() |
| 20 | 24 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 51 debug(global); | 55 debug(global); |
| 52 // Here continues checked.js, a swell file. | 56 // Here continues checked.js, a swell file. |
| 53 """.strip(), self._processor.contents) | 57 """.strip(), self._processor.contents) |
| 54 | 58 |
| 55 def assertLineNumber(self, abs_line, expected_line): | 59 def assertLineNumber(self, abs_line, expected_line): |
| 56 actual_line = self._processor.get_file_from_line(abs_line) | 60 actual_line = self._processor.get_file_from_line(abs_line) |
| 57 self.assertEqual(expected_line.file, actual_line.file) | 61 self.assertEqual(expected_line.file, actual_line.file) |
| 58 self.assertEqual(expected_line.line_number, actual_line.line_number) | 62 self.assertEqual(expected_line.line_number, actual_line.line_number) |
| 59 | 63 |
| 60 def testGetFileFromLine(self): | 64 def testGetFileFromLine(self): |
| 65 """Verify that inlined files retain their original line info.""" |
| 61 self.assertLineNumber(1, LineNumber("/checked.js", 1)) | 66 self.assertLineNumber(1, LineNumber("/checked.js", 1)) |
| 62 self.assertLineNumber(5, LineNumber("/checked.js", 5)) | 67 self.assertLineNumber(5, LineNumber("/checked.js", 5)) |
| 63 self.assertLineNumber(6, LineNumber("/global.js", 1)) | 68 self.assertLineNumber(6, LineNumber("/global.js", 1)) |
| 64 self.assertLineNumber(7, LineNumber("/debug.js", 1)) | 69 self.assertLineNumber(7, LineNumber("/debug.js", 1)) |
| 65 self.assertLineNumber(8, LineNumber("/debug.js", 2)) | 70 self.assertLineNumber(8, LineNumber("/debug.js", 2)) |
| 66 self.assertLineNumber(9, LineNumber("/global.js", 3)) | 71 self.assertLineNumber(9, LineNumber("/global.js", 3)) |
| 67 self.assertLineNumber(10, LineNumber("/checked.js", 7)) | 72 self.assertLineNumber(10, LineNumber("/checked.js", 7)) |
| 68 self.assertLineNumber(11, LineNumber("/checked.js", 8)) | 73 self.assertLineNumber(11, LineNumber("/checked.js", 8)) |
| 69 | 74 |
| 70 def testIncludedFiles(self): | 75 def testIncludedFiles(self): |
| 76 """Verify that files are tracked correctly as they're inlined.""" |
| 71 self.assertEquals(set(["/global.js", "/debug.js"]), | 77 self.assertEquals(set(["/global.js", "/debug.js"]), |
| 72 self._processor.included_files()) | 78 self._processor.included_files) |
| 73 | 79 |
| 74 | 80 |
| 75 class IfStrippingTest(unittest.TestCase): | 81 class IfStrippingTest(unittest.TestCase): |
| 82 """Test that the contents of XML <if> blocks are stripped.""" |
| 83 |
| 76 def __init__(self, *args, **kwargs): | 84 def __init__(self, *args, **kwargs): |
| 77 unittest.TestCase.__init__(self, *args, **kwargs) | 85 unittest.TestCase.__init__(self, *args, **kwargs) |
| 78 self.maxDiff = None | 86 self.maxDiff = None |
| 79 | 87 |
| 80 def setUp(self): | 88 def setUp(self): |
| 81 FileCache._cache["/century.js"] = """ | 89 FileCache._cache["/century.js"] = """ |
| 82 function getCurrentCentury() { | 90 function getCurrentCentury() { |
| 83 <if expr="netscape_os"> | 91 <if expr="netscape_os"> |
| 84 alert("Oh wow!"); | 92 alert("Oh wow!"); |
| 85 return "XX"; | 93 return "XX"; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 97 alert("Oh wow!"); | 105 alert("Oh wow!"); |
| 98 return "XX"; | 106 return "XX"; |
| 99 | 107 |
| 100 return "XXI"; | 108 return "XXI"; |
| 101 } | 109 } |
| 102 """.strip(), self.processor_.contents) | 110 """.strip(), self.processor_.contents) |
| 103 | 111 |
| 104 | 112 |
| 105 if __name__ == '__main__': | 113 if __name__ == '__main__': |
| 106 unittest.main() | 114 unittest.main() |
| OLD | NEW |