| OLD | NEW |
| (Empty) |
| 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 | |
| 3 // BSD-style license that can be found in the LICENSE file. | |
| 4 | |
| 5 library polymer.test.transform.all_phases_test; | |
| 6 | |
| 7 import 'package:polymer/src/transform.dart'; | |
| 8 import 'package:unittest/compact_vm_config.dart'; | |
| 9 | |
| 10 import 'common.dart'; | |
| 11 | |
| 12 void main() { | |
| 13 useCompactVMConfiguration(); | |
| 14 var phases = createDeployPhases(new TransformOptions()); | |
| 15 | |
| 16 testPhases('no changes', phases, { | |
| 17 'a|web/test.html': '<!DOCTYPE html><html></html>', | |
| 18 }, { | |
| 19 'a|web/test.html': '<!DOCTYPE html><html></html>', | |
| 20 }); | |
| 21 | |
| 22 testPhases('observable changes', phases, { | |
| 23 'a|web/test.dart': _sampleObservable('A', 'foo'), | |
| 24 'a|web/test2.dart': _sampleObservableOutput('B', 'bar'), | |
| 25 }, { | |
| 26 'a|web/test.dart': _sampleObservableOutput('A', 'foo'), | |
| 27 'a|web/test2.dart': _sampleObservableOutput('B', 'bar'), | |
| 28 }); | |
| 29 | |
| 30 testPhases('single script', phases, { | |
| 31 'a|web/test.html': | |
| 32 '<!DOCTYPE html><html><head>' | |
| 33 '<script type="application/dart" src="a.dart"></script>', | |
| 34 'a|web/test.dart': _sampleObservable('A', 'foo'), | |
| 35 }, { | |
| 36 'a|web/test.html': | |
| 37 '<!DOCTYPE html><html><head></head><body>' | |
| 38 '$SHADOW_DOM_TAG' | |
| 39 '$INTEROP_TAG' | |
| 40 '$PKG_JS_INTEROP_TAG' | |
| 41 '<script type="application/dart" ' | |
| 42 'src="test.html_bootstrap.dart"></script>' | |
| 43 '<script src="packages/browser/dart.js"></script>' | |
| 44 '</body></html>', | |
| 45 | |
| 46 'a|web/test.html_bootstrap.dart': | |
| 47 '''library app_bootstrap; | |
| 48 | |
| 49 import 'package:polymer/polymer.dart'; | |
| 50 import 'dart:mirrors' show currentMirrorSystem; | |
| 51 | |
| 52 import 'a.dart' as i0; | |
| 53 | |
| 54 void main() { | |
| 55 initPolymer([ | |
| 56 'a.dart', | |
| 57 ], currentMirrorSystem().isolate.rootLibrary.uri.toString()); | |
| 58 } | |
| 59 '''.replaceAll('\n ', '\n'), | |
| 60 'a|web/test.dart': _sampleObservableOutput('A', 'foo'), | |
| 61 }); | |
| 62 | |
| 63 testPhases('single inline script', phases, { | |
| 64 'a|web/test.html': | |
| 65 '<!DOCTYPE html><html><head>' | |
| 66 '<script type="application/dart">' | |
| 67 '${_sampleObservable("B", "bar")}</script>', | |
| 68 }, { | |
| 69 'a|web/test.html': | |
| 70 '<!DOCTYPE html><html><head></head><body>' | |
| 71 '$SHADOW_DOM_TAG' | |
| 72 '$INTEROP_TAG' | |
| 73 '$PKG_JS_INTEROP_TAG' | |
| 74 '<script type="application/dart" ' | |
| 75 'src="test.html_bootstrap.dart"></script>' | |
| 76 '<script src="packages/browser/dart.js"></script>' | |
| 77 '</body></html>', | |
| 78 | |
| 79 'a|web/test.html_bootstrap.dart': | |
| 80 '''library app_bootstrap; | |
| 81 | |
| 82 import 'package:polymer/polymer.dart'; | |
| 83 import 'dart:mirrors' show currentMirrorSystem; | |
| 84 | |
| 85 import 'test.html.0.dart' as i0; | |
| 86 | |
| 87 void main() { | |
| 88 initPolymer([ | |
| 89 'test.html.0.dart', | |
| 90 ], currentMirrorSystem().isolate.rootLibrary.uri.toString()); | |
| 91 } | |
| 92 '''.replaceAll('\n ', '\n'), | |
| 93 'a|web/test.html.0.dart': _sampleObservableOutput("B", "bar"), | |
| 94 }); | |
| 95 | |
| 96 testPhases('several scripts', phases, { | |
| 97 'a|web/test.html': | |
| 98 '<!DOCTYPE html><html><head>' | |
| 99 '<script type="application/dart" src="a.dart"></script>' | |
| 100 '<script type="application/dart">' | |
| 101 '${_sampleObservable("B", "bar")}</script>' | |
| 102 '</head><body><div>' | |
| 103 '<script type="application/dart">' | |
| 104 '${_sampleObservable("C", "car")}</script>' | |
| 105 '</div>' | |
| 106 '<script type="application/dart" src="d.dart"></script>', | |
| 107 'a|web/a.dart': _sampleObservable('A', 'foo'), | |
| 108 }, { | |
| 109 'a|web/test.html': | |
| 110 '<!DOCTYPE html><html><head></head><body>' | |
| 111 '$SHADOW_DOM_TAG' | |
| 112 '$INTEROP_TAG' | |
| 113 '$PKG_JS_INTEROP_TAG' | |
| 114 '<div></div>' | |
| 115 '<script type="application/dart" ' | |
| 116 'src="test.html_bootstrap.dart"></script>' | |
| 117 '<script src="packages/browser/dart.js"></script>' | |
| 118 '</body></html>', | |
| 119 | |
| 120 'a|web/test.html_bootstrap.dart': | |
| 121 '''library app_bootstrap; | |
| 122 | |
| 123 import 'package:polymer/polymer.dart'; | |
| 124 import 'dart:mirrors' show currentMirrorSystem; | |
| 125 | |
| 126 import 'a.dart' as i0; | |
| 127 import 'test.html.0.dart' as i1; | |
| 128 import 'test.html.1.dart' as i2; | |
| 129 import 'd.dart' as i3; | |
| 130 | |
| 131 void main() { | |
| 132 initPolymer([ | |
| 133 'a.dart', | |
| 134 'test.html.0.dart', | |
| 135 'test.html.1.dart', | |
| 136 'd.dart', | |
| 137 ], currentMirrorSystem().isolate.rootLibrary.uri.toString()); | |
| 138 } | |
| 139 '''.replaceAll('\n ', '\n'), | |
| 140 'a|web/a.dart': _sampleObservableOutput('A', 'foo'), | |
| 141 'a|web/test.html.0.dart': _sampleObservableOutput("B", "bar"), | |
| 142 'a|web/test.html.1.dart': _sampleObservableOutput("C", "car"), | |
| 143 }); | |
| 144 | |
| 145 testPhases('with imports', phases, { | |
| 146 'a|web/index.html': | |
| 147 '<!DOCTYPE html><html><head>' | |
| 148 '<link rel="import" href="test2.html">' | |
| 149 '</head><body>' | |
| 150 '<script type="application/dart" src="b.dart"></script>' | |
| 151 '<script type="application/dart">' | |
| 152 '${_sampleObservable("C", "car")}</script>', | |
| 153 'a|web/b.dart': _sampleObservable('B', 'bar'), | |
| 154 'a|web/test2.html': | |
| 155 '<!DOCTYPE html><html><head></head><body>' | |
| 156 '<polymer-element>1' | |
| 157 '<script type="application/dart">' | |
| 158 '${_sampleObservable("A", "foo")}</script>' | |
| 159 '</polymer-element></html>', | |
| 160 }, { | |
| 161 'a|web/index.html': | |
| 162 '<!DOCTYPE html><html><head></head><body>' | |
| 163 '$SHADOW_DOM_TAG' | |
| 164 '$INTEROP_TAG' | |
| 165 '$PKG_JS_INTEROP_TAG' | |
| 166 '<polymer-element>1</polymer-element>' | |
| 167 '<script type="application/dart" ' | |
| 168 'src="index.html_bootstrap.dart"></script>' | |
| 169 '<script src="packages/browser/dart.js"></script>' | |
| 170 '</body></html>', | |
| 171 'a|web/index.html_bootstrap.dart': | |
| 172 '''library app_bootstrap; | |
| 173 | |
| 174 import 'package:polymer/polymer.dart'; | |
| 175 import 'dart:mirrors' show currentMirrorSystem; | |
| 176 | |
| 177 import 'test2.html.0.dart' as i0; | |
| 178 import 'b.dart' as i1; | |
| 179 import 'index.html.0.dart' as i2; | |
| 180 | |
| 181 void main() { | |
| 182 initPolymer([ | |
| 183 'test2.html.0.dart', | |
| 184 'b.dart', | |
| 185 'index.html.0.dart', | |
| 186 ], currentMirrorSystem().isolate.rootLibrary.uri.toString()); | |
| 187 } | |
| 188 '''.replaceAll('\n ', '\n'), | |
| 189 'a|web/test2.html.0.dart': _sampleObservableOutput("A", "foo"), | |
| 190 'a|web/b.dart': _sampleObservableOutput('B', 'bar'), | |
| 191 'a|web/index.html.0.dart': _sampleObservableOutput("C", "car"), | |
| 192 }); | |
| 193 } | |
| 194 | |
| 195 String _sampleObservable(String className, String fieldName) => ''' | |
| 196 library ${className}_$fieldName; | |
| 197 import 'package:observe/observe.dart'; | |
| 198 | |
| 199 class $className extends ObservableBase { | |
| 200 @observable int $fieldName; | |
| 201 $className(this.$fieldName); | |
| 202 } | |
| 203 '''; | |
| 204 | |
| 205 String _sampleObservableOutput(String className, String fieldName) => ''' | |
| 206 library ${className}_$fieldName; | |
| 207 import 'package:observe/observe.dart'; | |
| 208 | |
| 209 class $className extends ChangeNotifierBase { | |
| 210 int __\$$fieldName; | |
| 211 int get $fieldName => __\$$fieldName; | |
| 212 set $fieldName(int value) { | |
| 213 __\$$fieldName = notifyPropertyChange(const Symbol('$fieldName'), __\$$field
Name, value); | |
| 214 } | |
| 215 | |
| 216 $className($fieldName) : __\$$fieldName = $fieldName; | |
| 217 } | |
| 218 '''; | |
| OLD | NEW |