| OLD | NEW |
| 1 #!/usr/bin/env python2 | 1 #!/usr/bin/env python2 |
| 2 # -*- coding: utf-8 -*- | 2 # -*- coding: utf-8 -*- |
| 3 | 3 |
| 4 # Copyright 2016 Google Inc. All Rights Reserved. | 4 # Copyright 2016 Google Inc. All Rights Reserved. |
| 5 # | 5 # |
| 6 # Licensed under the Apache License, Version 2.0 (the "License"); | 6 # Licensed under the Apache License, Version 2.0 (the "License"); |
| 7 # you may not use this file except in compliance with the License. | 7 # you may not use this file except in compliance with the License. |
| 8 # You may obtain a copy of the License at | 8 # You may obtain a copy of the License at |
| 9 # | 9 # |
| 10 # http://www.apache.org/licenses/LICENSE-2.0 | 10 # http://www.apache.org/licenses/LICENSE-2.0 |
| (...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 337 caterpillar.inject_script_tags( | 337 caterpillar.inject_script_tags( |
| 338 self.soup, [requirement], 'path', BOILERPLATE_DIR, '') | 338 self.soup, [requirement], 'path', BOILERPLATE_DIR, '') |
| 339 self.assertIsNotNone( | 339 self.assertIsNotNone( |
| 340 self.soup.find('script', | 340 self.soup.find('script', |
| 341 src=os.path.join('path', BOILERPLATE_DIR, requirement))) | 341 src=os.path.join('path', BOILERPLATE_DIR, requirement))) |
| 342 | 342 |
| 343 def test_many_requirements_tag_existence(self): | 343 def test_many_requirements_tag_existence(self): |
| 344 """Tests the correct tags are injected if there are many requirements.""" | 344 """Tests the correct tags are injected if there are many requirements.""" |
| 345 requirements = ['réq', 'uir', 'edf', 'ile', 's.j', 'ava', 'scr', 'ipt'] | 345 requirements = ['réq', 'uir', 'edf', 'ile', 's.j', 'ava', 'scr', 'ipt'] |
| 346 caterpillar.inject_script_tags( | 346 caterpillar.inject_script_tags( |
| 347 self.soup, requirements, 'path', BOILERPLATE_DIR, '') | 347 self.soup, requirements, 'path', BOILERPLATE_DIR, '') |
| 348 for requirement in requirements: | 348 for requirement in requirements: |
| 349 self.assertIsNotNone( | 349 self.assertIsNotNone( |
| 350 self.soup.find('script', | 350 self.soup.find('script', |
| 351 src=os.path.join('path', BOILERPLATE_DIR, | 351 src=os.path.join('path', BOILERPLATE_DIR, |
| 352 requirement))) | 352 requirement))) |
| 353 | 353 |
| 354 def test_no_body_yes_html(self): |
| 355 """Tests the correct tags are injected if there is no body tag.""" |
| 356 html = """\ |
| 357 <!DOCTYPE html> |
| 358 <html> |
| 359 <h1> |
| 360 Hello, Wo®ld! |
| 361 </h1> |
| 362 </html>""" |
| 363 soup = bs4.BeautifulSoup(html, 'html.parser') |
| 364 requirements = ['réq', 'uir'] |
| 365 caterpillar.inject_script_tags( |
| 366 soup, requirements, 'path', BOILERPLATE_DIR, '') |
| 367 self.assertEqual(re.sub(r'\s+', ' ', unicode(soup)), |
| 368 re.sub(r'\s+', ' ', """\ |
| 369 <!DOCTYPE html> |
| 370 <html> |
| 371 <h1> |
| 372 Hello, Wo®ld! |
| 373 </h1> |
| 374 <script src="path/bóilerplate dir/réq"></script><script |
| 375 src="path/bóilerplate dir/uir"></script></html>""")) |
| 376 |
| 377 def test_no_body_or_html(self): |
| 378 """Tests the correct tags are injected if there is no body or html tag.""" |
| 379 html = """\ |
| 380 <!DOCTYPE html> |
| 381 <h1> |
| 382 Hello, Wo®ld! |
| 383 </h1> |
| 384 """ |
| 385 soup = bs4.BeautifulSoup(html, 'html.parser') |
| 386 requirements = ['réq', 'uir'] |
| 387 caterpillar.inject_script_tags( |
| 388 soup, requirements, 'path', BOILERPLATE_DIR, '') |
| 389 self.assertEqual(re.sub(r'\s+', ' ', unicode(soup)), |
| 390 re.sub(r'\s+', ' ', """\ |
| 391 <!DOCTYPE html> |
| 392 <h1> |
| 393 Hello, Wo®ld! |
| 394 </h1> |
| 395 <script src="path/bóilerplate dir/réq"></script><script |
| 396 src="path/bóilerplate dir/uir"></script>""")) |
| 397 |
| 354 def test_many_requirements_tag_order(self): | 398 def test_many_requirements_tag_order(self): |
| 355 """Tests tags are injected in order.""" | 399 """Tests tags are injected in order.""" |
| 356 requirements = ['réq', 'uir', 'edf', 'ile', 's.j', 'ava', 'scr', 'ipt'] | 400 requirements = ['réq', 'uir', 'edf', 'ile', 's.j', 'ava', 'scr', 'ipt'] |
| 357 caterpillar.inject_script_tags( | 401 caterpillar.inject_script_tags( |
| 358 self.soup, requirements, 'path', BOILERPLATE_DIR, '') | 402 self.soup, requirements, 'path', BOILERPLATE_DIR, '') |
| 359 srcs = [script['src'] for script in self.soup('script')] | 403 srcs = [script['src'] for script in self.soup('script')] |
| 360 upto = -1 | 404 upto = -1 |
| 361 for requirement in requirements: | 405 for requirement in requirements: |
| 362 # Monotonically increasing indices <-> order is preserved. | 406 # Monotonically increasing indices <-> order is preserved. |
| 363 index = srcs.index(os.path.join('path', BOILERPLATE_DIR, requirement)) | 407 index = srcs.index(os.path.join('path', BOILERPLATE_DIR, requirement)) |
| (...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 700 "app": { | 744 "app": { |
| 701 "background": {} | 745 "background": {} |
| 702 }, | 746 }, |
| 703 "name": "t\\u00e9st app'" | 747 "name": "t\\u00e9st app'" |
| 704 }; | 748 }; |
| 705 """) | 749 """) |
| 706 | 750 |
| 707 | 751 |
| 708 if __name__ == '__main__': | 752 if __name__ == '__main__': |
| 709 unittest.main() | 753 unittest.main() |
| OLD | NEW |