| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library polymer.test.linter_test; | 5 library polymer.test.linter_test; |
| 6 | 6 |
| 7 import 'dart:convert'; | 7 import 'dart:convert'; |
| 8 | 8 |
| 9 import 'package:polymer/src/build/common.dart'; | 9 import 'package:polymer/src/build/common.dart'; |
| 10 import 'package:polymer/src/build/linter.dart'; | 10 import 'package:polymer/src/build/linter.dart'; |
| (...skipping 623 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 634 <link rel="import" href="../../packages/polymer/polymer.html"> | 634 <link rel="import" href="../../packages/polymer/polymer.html"> |
| 635 <link rel="import" href="b.html"> | 635 <link rel="import" href="b.html"> |
| 636 <span is="x-a"></span> | 636 <span is="x-a"></span> |
| 637 '''.replaceAll(' ', ''), | 637 '''.replaceAll(' ', ''), |
| 638 }, [ | 638 }, [ |
| 639 'warning: custom element "x-a" extends from "li". Did you mean ' | 639 'warning: custom element "x-a" extends from "li". Did you mean ' |
| 640 'to write <li is="x-a">? (lib/test.html 2 0)' | 640 'to write <li is="x-a">? (lib/test.html 2 0)' |
| 641 ]); | 641 ]); |
| 642 | 642 |
| 643 _testLinter('FOUC warning works', { | 643 _testLinter('FOUC warning works', { |
| 644 'a|lib/a.html': ''' | 644 'a|web/a.html': ''' |
| 645 <!DOCTYPE html> |
| 645 <html><body> | 646 <html><body> |
| 646 <link rel="import" href="../../packages/polymer/polymer.html"> | 647 <link rel="import" href="../../packages/polymer/polymer.html"> |
| 647 <polymer-element name="my-element" noscript></polymer-element> | 648 <polymer-element name="my-element" noscript></polymer-element> |
| 648 <my-element>hello!</my-element> | 649 <my-element>hello!</my-element> |
| 650 <script type="application/dart"> |
| 651 export "package:polymer/init.dart"; |
| 652 </script> |
| 649 </body></html> | 653 </body></html> |
| 650 ''', | 654 ''', |
| 651 'a|lib/b.html': ''' | 655 'a|web/b.html': ''' |
| 656 <!DOCTYPE html> |
| 652 <html><body> | 657 <html><body> |
| 653 <link rel="import" href="../../packages/polymer/polymer.html"> | 658 <link rel="import" href="../../packages/polymer/polymer.html"> |
| 654 <polymer-element name="my-element" noscript></polymer-element> | 659 <polymer-element name="my-element" noscript></polymer-element> |
| 655 <div><my-element>hello!</my-element></div> | 660 <div><my-element>hello!</my-element></div> |
| 661 <script type="application/dart"> |
| 662 export "package:polymer/init.dart"; |
| 663 </script> |
| 656 </body></html> | 664 </body></html> |
| 657 ''', | 665 ''', |
| 658 'a|lib/c.html': ''' | 666 'a|web/c.html': ''' |
| 667 <!DOCTYPE html> |
| 659 <html unresolved><body> | 668 <html unresolved><body> |
| 660 <link rel="import" href="../../packages/polymer/polymer.html"> | 669 <link rel="import" href="../../packages/polymer/polymer.html"> |
| 661 <polymer-element name="my-element" noscript></polymer-element> | 670 <polymer-element name="my-element" noscript></polymer-element> |
| 662 <my-element>hello!</my-element> | 671 <my-element>hello!</my-element> |
| 672 <script type="application/dart"> |
| 673 export "package:polymer/init.dart"; |
| 674 </script> |
| 663 </body></html> | 675 </body></html> |
| 664 ''' | 676 ''' |
| 665 }, [ | 677 }, [ |
| 666 'warning: ${POSSIBLE_FUOC.snippet} (lib/a.html 3 14)', | 678 'warning: ${POSSIBLE_FUOC.snippet} (web/a.html 4 14)', |
| 667 'warning: ${POSSIBLE_FUOC.snippet} (lib/b.html 3 19)', | 679 'warning: ${POSSIBLE_FUOC.snippet} (web/b.html 4 19)', |
| 668 'warning: ${POSSIBLE_FUOC.snippet} (lib/c.html 3 14)', | 680 'warning: ${POSSIBLE_FUOC.snippet} (web/c.html 4 14)', |
| 669 ]); | 681 ]); |
| 670 | 682 |
| 671 _testLinter('FOUC, no false positives.', { | 683 _testLinter('FOUC, no false positives.', { |
| 672 'a|lib/a.html': ''' | 684 // Parent has unresolved attribute. |
| 673 <html><body><div unresolved> | 685 'a|web/a.html': ''' |
| 674 <link rel="import" href="../../packages/polymer/polymer.html"> | 686 <!DOCTYPE html> |
| 675 <polymer-element name="my-element" noscript></polymer-element> | 687 <html><body> |
| 676 <my-element>hello!</my-element> | 688 <div unresolved> |
| 677 </div></body></html> | 689 <link rel="import" href="../../packages/polymer/polymer.html"> |
| 690 <polymer-element name="my-element" noscript></polymer-element> |
| 691 <my-element>hello!</my-element> |
| 692 </div> |
| 693 <script type="application/dart"> |
| 694 export "package:polymer/init.dart"; |
| 695 </script> |
| 696 </body></html> |
| 678 ''', | 697 ''', |
| 679 'a|lib/b.html': ''' | 698 // Body has unresolved attribute. |
| 699 'a|web/b.html': ''' |
| 700 <!DOCTYPE html> |
| 680 <html><body unresolved> | 701 <html><body unresolved> |
| 681 <link rel="import" href="../../packages/polymer/polymer.html"> | 702 <link rel="import" href="../../packages/polymer/polymer.html"> |
| 682 <polymer-element name="my-element" noscript></polymer-element> | 703 <polymer-element name="my-element" noscript></polymer-element> |
| 683 <my-element>hello!</my-element> | 704 <my-element>hello!</my-element> |
| 705 <script type="application/dart"> |
| 706 export "package:polymer/init.dart"; |
| 707 </script> |
| 684 </body></html> | 708 </body></html> |
| 685 ''', | 709 ''', |
| 686 'a|lib/c.html': ''' | 710 // Inside polymer-element tags its fine. |
| 711 'a|web/c.html': ''' |
| 712 <!DOCTYPE html> |
| 687 <html><body> | 713 <html><body> |
| 688 <link rel="import" href="../../packages/polymer/polymer.html"> | 714 <link rel="import" href="../../packages/polymer/polymer.html"> |
| 689 <polymer-element name="my-element" noscript></polymer-element> | 715 <polymer-element name="my-element" noscript></polymer-element> |
| 690 <polymer-element name="foo-element"> | 716 <polymer-element name="foo-element"> |
| 691 <template><my-element>hello!</my-element></template> | 717 <template><my-element>hello!</my-element></template> |
| 692 </polymer-element> | 718 </polymer-element> |
| 719 <script type="application/dart"> |
| 720 export "package:polymer/init.dart"; |
| 721 </script> |
| 693 </body></html> | 722 </body></html> |
| 694 ''', | 723 ''', |
| 695 'a|lib/d.html': ''' | 724 // Empty custom elements are fine. |
| 725 'a|web/d.html': ''' |
| 726 <!DOCTYPE html> |
| 696 <html><body> | 727 <html><body> |
| 697 <link rel="import" href="../../packages/polymer/polymer.html"> | 728 <link rel="import" href="../../packages/polymer/polymer.html"> |
| 698 <polymer-element name="my-element" noscript></polymer-element> | 729 <polymer-element name="my-element" noscript></polymer-element> |
| 699 <my-element></my-element> | 730 <my-element></my-element> |
| 731 <script type="application/dart"> |
| 732 export "package:polymer/init.dart"; |
| 733 </script> |
| 700 </body></html> | 734 </body></html> |
| 701 ''', | 735 ''', |
| 736 // Entry points only! |
| 737 'a|lib/a.html': ''' |
| 738 <link rel="import" href="../../packages/polymer/polymer.html"> |
| 739 <polymer-element name="my-element" noscript></polymer-element> |
| 740 <my-element>hello!</my-element> |
| 741 ''', |
| 702 }, []); | 742 }, []); |
| 703 }); | 743 }); |
| 704 | 744 |
| 705 group('custom attributes', () { | 745 group('custom attributes', () { |
| 706 _testLinter('foo-bar is no longer supported in attributes', { | 746 _testLinter('foo-bar is no longer supported in attributes', { |
| 707 'a|lib/test.html': '''<html><body> | 747 'a|lib/test.html': '''<html><body> |
| 708 <link rel="import" href="../../packages/polymer/polymer.html"> | 748 <link rel="import" href="../../packages/polymer/polymer.html"> |
| 709 <polymer-element name="x-a" attributes="foo-bar"> | 749 <polymer-element name="x-a" attributes="foo-bar"> |
| 710 </polymer-element> | 750 </polymer-element> |
| 711 '''.replaceAll(' ', ''), | 751 '''.replaceAll(' ', ''), |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 779 } | 819 } |
| 780 if (outputMessages.isEmpty) { | 820 if (outputMessages.isEmpty) { |
| 781 var linter = new Linter(new TransformOptions()); | 821 var linter = new Linter(new TransformOptions()); |
| 782 testPhases(name, [[linter]], inputFiles, outputFiles, outputMessages, solo); | 822 testPhases(name, [[linter]], inputFiles, outputFiles, outputMessages, solo); |
| 783 } else { | 823 } else { |
| 784 testLogOutput( | 824 testLogOutput( |
| 785 (options) => new Linter(options), name, inputFiles, outputFiles, | 825 (options) => new Linter(options), name, inputFiles, outputFiles, |
| 786 outputMessages, solo); | 826 outputMessages, solo); |
| 787 } | 827 } |
| 788 } | 828 } |
| OLD | NEW |