Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(71)

Side by Side Diff: pkg/polymer/test/build/script_compactor_test.dart

Issue 303003003: Fix 19029: handle special case when on-handler is empty in polymer, add better (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « pkg/polymer/test/build/linter_test.dart ('k') | pkg/smoke/lib/codegen/generator.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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.build.script_compactor_test; 5 library polymer.test.build.script_compactor_test;
6 6
7 import 'package:code_transformers/tests.dart' show testingDartSdkDirectory; 7 import 'package:code_transformers/tests.dart' show testingDartSdkDirectory;
8 import 'package:polymer/src/build/common.dart'; 8 import 'package:polymer/src/build/common.dart';
9 import 'package:polymer/src/build/script_compactor.dart'; 9 import 'package:polymer/src/build/script_compactor.dart';
10 import 'package:smoke/codegen/generator.dart' show DEFAULT_IMPORTS; 10 import 'package:smoke/codegen/generator.dart' show DEFAULT_IMPORTS;
(...skipping 635 matching lines...) Expand 10 before | Expand all | Expand 10 after
646 '''.replaceAll('\n ', '\n'), 646 '''.replaceAll('\n ', '\n'),
647 }, null); 647 }, null);
648 } 648 }
649 649
650 codegenTests(phases) { 650 codegenTests(phases) {
651 testPhases('bindings', phases, { 651 testPhases('bindings', phases, {
652 'a|web/test.html': 652 'a|web/test.html':
653 '<!DOCTYPE html><html><body>' 653 '<!DOCTYPE html><html><body>'
654 '<polymer-element name="foo-bar"><template>' 654 '<polymer-element name="foo-bar"><template>'
655 '<div>{{a.node}}</div>' 655 '<div>{{a.node}}</div>'
656 '<div>{{anotherNode}}</div>' 656 '<div>{{ anotherNode }}</div>' // extra space inside bindings is OK
657 '<div>{{a.call1(a)}}</div>' 657 '<div>{{a.call1(a)}}</div>'
658 '<div>{{call2(a)}}</div>' 658 '<div>{{call2(a)}}</div>'
659 '<div>{{}}</div>' // empty bindings are ignored
660 '<div>{{ }}</div>'
659 '<div class="{{an.attribute}}"></div>' 661 '<div class="{{an.attribute}}"></div>'
660 '<a href="path/{{within.an.attribute}}/foo/bar"></a>' 662 '<a href="path/{{within.an.attribute}}/foo/bar"></a>'
661 '<div data-attribute="{{anotherAttribute}}"></div>' 663 '<div data-attribute="{{anotherAttribute}}"></div>'
662 // input and custom-element attributes are treated as 2-way bindings: 664 // input and custom-element attributes are treated as 2-way bindings:
663 '<input value="{{this.is.twoWay}}">' 665 '<input value="{{this.iS.twoWay}}">'
664 '<input value="{{this.is.twoWayInt | intToStringTransformer}}">' 666 '<input value="{{this.iS.twoWayInt | intToStringTransformer}}">'
665 '<something-else my-attribute="{{here.too}}"></something-else>' 667 '<something-else my-attribute="{{here.too}}"></something-else>'
666 '<div on-click="{{methodName}}"></div>' 668 '<div on-click="{{methodName}}"></div>'
669 '<div on-click="{{ methodName2 }}"></div>' // extra space is OK
667 '<div on-click="{{@read.method}}"></div>' 670 '<div on-click="{{@read.method}}"></div>'
671 // empty handlers are invalid, but we still produce valid output.
672 '<div on-click="{{}}"></div>'
673 '<div on-click="{{ }}"></div>'
668 '</template></polymer-element>', 674 '</template></polymer-element>',
669 'a|web/test.html._data': expectedData(['web/a.dart']), 675 'a|web/test.html._data': expectedData(['web/a.dart']),
670 'a|web/a.dart': 676 'a|web/a.dart':
671 'library a;\n' 677 'library a;\n'
672 'import "package:polymer/polymer.dart";\n' 678 'import "package:polymer/polymer.dart";\n'
673 'main(){}', 679 'main(){}',
674 }, { 680 }, {
675 'a|web/test.html_bootstrap.dart': 681 'a|web/test.html_bootstrap.dart':
676 '''$MAIN_HEADER 682 '''$MAIN_HEADER
677 import 'a.dart' as i0; 683 import 'a.dart' as i0;
678 ${DEFAULT_IMPORTS.join('\n')} 684 ${DEFAULT_IMPORTS.join('\n')}
679 685
680 void main() { 686 void main() {
681 useGeneratedCode(new StaticConfiguration( 687 useGeneratedCode(new StaticConfiguration(
682 checkedMode: false, 688 checkedMode: false,
683 getters: { 689 getters: {
684 #a: (o) => o.a, 690 #a: (o) => o.a,
685 #an: (o) => o.an, 691 #an: (o) => o.an,
686 #anotherAttribute: (o) => o.anotherAttribute, 692 #anotherAttribute: (o) => o.anotherAttribute,
687 #anotherNode: (o) => o.anotherNode, 693 #anotherNode: (o) => o.anotherNode,
688 #attribute: (o) => o.attribute, 694 #attribute: (o) => o.attribute,
689 #call1: (o) => o.call1, 695 #call1: (o) => o.call1,
690 #call2: (o) => o.call2, 696 #call2: (o) => o.call2,
691 #here: (o) => o.here, 697 #here: (o) => o.here,
698 #iS: (o) => o.iS,
692 #intToStringTransformer: (o) => o.intToStringTransformer, 699 #intToStringTransformer: (o) => o.intToStringTransformer,
693 #is: (o) => o.is,
694 #method: (o) => o.method, 700 #method: (o) => o.method,
695 #methodName: (o) => o.methodName, 701 #methodName: (o) => o.methodName,
702 #methodName2: (o) => o.methodName2,
696 #node: (o) => o.node, 703 #node: (o) => o.node,
697 #read: (o) => o.read, 704 #read: (o) => o.read,
698 #too: (o) => o.too, 705 #too: (o) => o.too,
699 #twoWay: (o) => o.twoWay, 706 #twoWay: (o) => o.twoWay,
700 #twoWayInt: (o) => o.twoWayInt, 707 #twoWayInt: (o) => o.twoWayInt,
701 #within: (o) => o.within, 708 #within: (o) => o.within,
702 }, 709 },
703 setters: { 710 setters: {
704 #too: (o, v) { o.too = v; }, 711 #too: (o, v) { o.too = v; },
705 #twoWay: (o, v) { o.twoWay = v; }, 712 #twoWay: (o, v) { o.twoWay = v; },
706 #twoWayInt: (o, v) { o.twoWayInt = v; }, 713 #twoWayInt: (o, v) { o.twoWayInt = v; },
707 }, 714 },
708 names: { 715 names: {
709 #a: r'a', 716 #a: r'a',
710 #an: r'an', 717 #an: r'an',
711 #anotherAttribute: r'anotherAttribute', 718 #anotherAttribute: r'anotherAttribute',
712 #anotherNode: r'anotherNode', 719 #anotherNode: r'anotherNode',
713 #attribute: r'attribute', 720 #attribute: r'attribute',
714 #call1: r'call1', 721 #call1: r'call1',
715 #call2: r'call2', 722 #call2: r'call2',
716 #here: r'here', 723 #here: r'here',
724 #iS: r'iS',
717 #intToStringTransformer: r'intToStringTransformer', 725 #intToStringTransformer: r'intToStringTransformer',
718 #is: r'is',
719 #method: r'method', 726 #method: r'method',
720 #methodName: r'methodName', 727 #methodName: r'methodName',
728 #methodName2: r'methodName2',
721 #node: r'node', 729 #node: r'node',
722 #read: r'read', 730 #read: r'read',
723 #too: r'too', 731 #too: r'too',
724 #twoWay: r'twoWay', 732 #twoWay: r'twoWay',
725 #twoWayInt: r'twoWayInt', 733 #twoWayInt: r'twoWayInt',
726 #within: r'within', 734 #within: r'within',
727 })); 735 }));
728 configureForDeployment([]); 736 configureForDeployment([]);
729 i0.main(); 737 i0.main();
730 } 738 }
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
964 })); 972 }));
965 configureForDeployment([ 973 configureForDeployment([
966 () => Polymer.register(\'x-foo\', i0.XFoo), 974 () => Polymer.register(\'x-foo\', i0.XFoo),
967 ]); 975 ]);
968 i0.main(); 976 i0.main();
969 } 977 }
970 '''.replaceAll('\n ', '\n'), 978 '''.replaceAll('\n ', '\n'),
971 }); 979 });
972 } 980 }
973 981
OLDNEW
« no previous file with comments | « pkg/polymer/test/build/linter_test.dart ('k') | pkg/smoke/lib/codegen/generator.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698