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.import_inliner_test; |
| 6 |
| 7 import 'package:polymer/src/transform/import_inliner.dart'; |
| 8 import 'package:unittest/compact_vm_config.dart'; |
| 9 import 'package:unittest/unittest.dart'; |
| 10 |
| 11 import 'common.dart'; |
| 12 |
| 13 void main() { |
| 14 useCompactVMConfiguration(); |
| 15 testPhases('no changes', [[new ImportedElementInliner()]], { |
| 16 'a|test.html': '<!DOCTYPE html><html></html>', |
| 17 }, { |
| 18 'a|test.html': '<!DOCTYPE html><html></html>', |
| 19 }); |
| 20 |
| 21 testPhases('empty import', [[new ImportedElementInliner()]], { |
| 22 'a|test.html': |
| 23 '<!DOCTYPE html><html><head>' |
| 24 '<link rel="import" href="">' // empty href |
| 25 '</head></html>', |
| 26 'a|test2.html': |
| 27 '<!DOCTYPE html><html><head>' |
| 28 '<link rel="import">' // no href |
| 29 '</head></html>', |
| 30 }, { |
| 31 'a|test.html': |
| 32 '<!DOCTYPE html><html><head>' |
| 33 '</head><body></body></html>', |
| 34 'a|test2.html': |
| 35 '<!DOCTYPE html><html><head>' |
| 36 '</head><body></body></html>', |
| 37 }); |
| 38 |
| 39 testPhases('shallow, no elements', [[new ImportedElementInliner()]], { |
| 40 'a|test.html': |
| 41 '<!DOCTYPE html><html><head>' |
| 42 '<link rel="import" href="test2.html">' |
| 43 '</head></html>', |
| 44 'a|test2.html': |
| 45 '<!DOCTYPE html><html><head>' |
| 46 '</head></html>', |
| 47 }, { |
| 48 'a|test.html': |
| 49 '<!DOCTYPE html><html><head>' |
| 50 '</head><body></body></html>', |
| 51 'a|test2.html': |
| 52 '<!DOCTYPE html><html><head>' |
| 53 '</head></html>', |
| 54 }); |
| 55 |
| 56 testPhases('shallow, elements, one import', [[new ImportedElementInliner()]], |
| 57 { |
| 58 'a|test.html': |
| 59 '<!DOCTYPE html><html><head>' |
| 60 '<link rel="import" href="test2.html">' |
| 61 '</head></html>', |
| 62 'a|test2.html': |
| 63 '<!DOCTYPE html><html><head>' |
| 64 '</head><body><polymer-element>2</polymer-element></html>', |
| 65 }, { |
| 66 'a|test.html': |
| 67 '<!DOCTYPE html><html><head>' |
| 68 '</head><body>' |
| 69 '<polymer-element>2</polymer-element>' |
| 70 '</body></html>', |
| 71 'a|test2.html': |
| 72 '<!DOCTYPE html><html><head>' |
| 73 '</head><body><polymer-element>2</polymer-element></html>', |
| 74 }); |
| 75 |
| 76 testPhases('shallow, elements, many', [[new ImportedElementInliner()]], |
| 77 { |
| 78 'a|test.html': |
| 79 '<!DOCTYPE html><html><head>' |
| 80 '<link rel="import" href="test2.html">' |
| 81 '<link rel="import" href="test3.html">' |
| 82 '</head></html>', |
| 83 'a|test2.html': |
| 84 '<!DOCTYPE html><html><head>' |
| 85 '</head><body><polymer-element>2</polymer-element></html>', |
| 86 'a|test3.html': |
| 87 '<!DOCTYPE html><html><head>' |
| 88 '</head><body><polymer-element>3</polymer-element></html>', |
| 89 }, { |
| 90 'a|test.html': |
| 91 '<!DOCTYPE html><html><head>' |
| 92 '</head><body>' |
| 93 '<polymer-element>2</polymer-element>' |
| 94 '<polymer-element>3</polymer-element>' |
| 95 '</body></html>', |
| 96 'a|test2.html': |
| 97 '<!DOCTYPE html><html><head>' |
| 98 '</head><body><polymer-element>2</polymer-element></html>', |
| 99 'a|test3.html': |
| 100 '<!DOCTYPE html><html><head>' |
| 101 '</head><body><polymer-element>3</polymer-element></html>', |
| 102 }); |
| 103 |
| 104 testPhases('deep, elements, one per file', [[new ImportedElementInliner()]], { |
| 105 'a|test.html': |
| 106 '<!DOCTYPE html><html><head>' |
| 107 '<link rel="import" href="test2.html">' |
| 108 '</head></html>', |
| 109 'a|test2.html': |
| 110 '<!DOCTYPE html><html><head>' |
| 111 '<link rel="import" href="assets/b/test3.html">' |
| 112 '</head><body><polymer-element>2</polymer-element></html>', |
| 113 'b|asset/test3.html': |
| 114 '<!DOCTYPE html><html><head>' |
| 115 '<link rel="import" href="packages/c/test4.html">' |
| 116 '</head><body><polymer-element>3</polymer-element></html>', |
| 117 'c|lib/test4.html': |
| 118 '<!DOCTYPE html><html><head>' |
| 119 '</head><body><polymer-element>4</polymer-element></html>', |
| 120 }, { |
| 121 'a|test.html': |
| 122 '<!DOCTYPE html><html><head>' |
| 123 '</head><body>' |
| 124 '<polymer-element>4</polymer-element>' |
| 125 '<polymer-element>3</polymer-element>' |
| 126 '<polymer-element>2</polymer-element></body></html>', |
| 127 'a|test2.html': |
| 128 '<!DOCTYPE html><html><head>' |
| 129 '</head><body>' |
| 130 '<polymer-element>4</polymer-element>' |
| 131 '<polymer-element>3</polymer-element>' |
| 132 '<polymer-element>2</polymer-element></body></html>', |
| 133 'b|asset/test3.html': |
| 134 '<!DOCTYPE html><html><head>' |
| 135 '</head><body>' |
| 136 '<polymer-element>4</polymer-element>' |
| 137 '<polymer-element>3</polymer-element></body></html>', |
| 138 'c|lib/test4.html': |
| 139 '<!DOCTYPE html><html><head>' |
| 140 '</head><body><polymer-element>4</polymer-element></html>', |
| 141 }); |
| 142 |
| 143 testPhases('deep, elements, many imports', [[new ImportedElementInliner()]], { |
| 144 'a|test.html': |
| 145 '<!DOCTYPE html><html><head>' |
| 146 '<link rel="import" href="test2a.html">' |
| 147 '<link rel="import" href="test2b.html">' |
| 148 '</head></html>', |
| 149 'a|test2a.html': |
| 150 '<!DOCTYPE html><html><head>' |
| 151 '<link rel="import" href="test3a.html">' |
| 152 '<link rel="import" href="test3b.html">' |
| 153 '</head><body><polymer-element>2a</polymer-element></body></html>', |
| 154 'a|test2b.html': |
| 155 '<!DOCTYPE html><html><head>' |
| 156 '<link rel="import" href="test4a.html">' |
| 157 '<link rel="import" href="test4b.html">' |
| 158 '</head><body><polymer-element>2b</polymer-element></body></html>', |
| 159 'a|test3a.html': |
| 160 '<!DOCTYPE html><html><head>' |
| 161 '</head><body><polymer-element>3a</polymer-element></body></html>', |
| 162 'a|test3b.html': |
| 163 '<!DOCTYPE html><html><head>' |
| 164 '</head><body><polymer-element>3b</polymer-element></body></html>', |
| 165 'a|test4a.html': |
| 166 '<!DOCTYPE html><html><head>' |
| 167 '</head><body><polymer-element>4a</polymer-element></body></html>', |
| 168 'a|test4b.html': |
| 169 '<!DOCTYPE html><html><head>' |
| 170 '</head><body><polymer-element>4b</polymer-element></body></html>', |
| 171 }, { |
| 172 'a|test.html': |
| 173 '<!DOCTYPE html><html><head>' |
| 174 '</head><body>' |
| 175 '<polymer-element>3a</polymer-element>' |
| 176 '<polymer-element>3b</polymer-element>' |
| 177 '<polymer-element>2a</polymer-element>' |
| 178 '<polymer-element>4a</polymer-element>' |
| 179 '<polymer-element>4b</polymer-element>' |
| 180 '<polymer-element>2b</polymer-element>' |
| 181 '</body></html>', |
| 182 'a|test2a.html': |
| 183 '<!DOCTYPE html><html><head>' |
| 184 '</head><body>' |
| 185 '<polymer-element>3a</polymer-element>' |
| 186 '<polymer-element>3b</polymer-element>' |
| 187 '<polymer-element>2a</polymer-element>' |
| 188 '</body></html>', |
| 189 'a|test2b.html': |
| 190 '<!DOCTYPE html><html><head>' |
| 191 '</head><body>' |
| 192 '<polymer-element>4a</polymer-element>' |
| 193 '<polymer-element>4b</polymer-element>' |
| 194 '<polymer-element>2b</polymer-element>' |
| 195 '</body></html>', |
| 196 'a|test3a.html': |
| 197 '<!DOCTYPE html><html><head>' |
| 198 '</head><body>' |
| 199 '<polymer-element>3a</polymer-element>' |
| 200 '</body></html>', |
| 201 'a|test3b.html': |
| 202 '<!DOCTYPE html><html><head>' |
| 203 '</head><body>' |
| 204 '<polymer-element>3b</polymer-element>' |
| 205 '</body></html>', |
| 206 'a|test4a.html': |
| 207 '<!DOCTYPE html><html><head>' |
| 208 '</head><body>' |
| 209 '<polymer-element>4a</polymer-element>' |
| 210 '</body></html>', |
| 211 'a|test4b.html': |
| 212 '<!DOCTYPE html><html><head>' |
| 213 '</head><body>' |
| 214 '<polymer-element>4b</polymer-element>' |
| 215 '</body></html>', |
| 216 }); |
| 217 |
| 218 testPhases('imports cycle, 1-step lasso', [[new ImportedElementInliner()]], { |
| 219 'a|test.html': |
| 220 '<!DOCTYPE html><html><head>' |
| 221 '<link rel="import" href="test_1.html">' |
| 222 '</head></html>', |
| 223 'a|test_1.html': |
| 224 '<!DOCTYPE html><html><head>' |
| 225 '<link rel="import" href="test_2.html">' |
| 226 '</head><body><polymer-element>1</polymer-element></html>', |
| 227 'a|test_2.html': |
| 228 '<!DOCTYPE html><html><head>' |
| 229 '<link rel="import" href="test_1.html">' |
| 230 '</head><body><polymer-element>2</polymer-element></html>', |
| 231 }, { |
| 232 'a|test.html': |
| 233 '<!DOCTYPE html><html><head>' |
| 234 '</head><body>' |
| 235 '<polymer-element>2</polymer-element>' |
| 236 '<polymer-element>1</polymer-element></body></html>', |
| 237 'a|test_1.html': |
| 238 '<!DOCTYPE html><html><head>' |
| 239 '</head><body>' |
| 240 '<polymer-element>2</polymer-element>' |
| 241 '<polymer-element>1</polymer-element></body></html>', |
| 242 'a|test_2.html': |
| 243 '<!DOCTYPE html><html><head>' |
| 244 '</head><body>' |
| 245 '<polymer-element>1</polymer-element>' |
| 246 '<polymer-element>2</polymer-element></body></html>', |
| 247 }); |
| 248 |
| 249 testPhases('imports cycle, 2-step lasso', [[new ImportedElementInliner()]], { |
| 250 'a|test.html': |
| 251 '<!DOCTYPE html><html><head>' |
| 252 '<link rel="import" href="test_1.html">' |
| 253 '</head></html>', |
| 254 'a|test_1.html': |
| 255 '<!DOCTYPE html><html><head>' |
| 256 '<link rel="import" href="test_2.html">' |
| 257 '</head><body><polymer-element>1</polymer-element></html>', |
| 258 'a|test_2.html': |
| 259 '<!DOCTYPE html><html><head>' |
| 260 '<link rel="import" href="test_3.html">' |
| 261 '</head><body><polymer-element>2</polymer-element></html>', |
| 262 'a|test_3.html': |
| 263 '<!DOCTYPE html><html><head>' |
| 264 '<link rel="import" href="test_1.html">' |
| 265 '</head><body><polymer-element>3</polymer-element></html>', |
| 266 }, { |
| 267 'a|test.html': |
| 268 '<!DOCTYPE html><html><head>' |
| 269 '</head><body>' |
| 270 '<polymer-element>3</polymer-element>' |
| 271 '<polymer-element>2</polymer-element>' |
| 272 '<polymer-element>1</polymer-element></body></html>', |
| 273 'a|test_1.html': |
| 274 '<!DOCTYPE html><html><head>' |
| 275 '</head><body>' |
| 276 '<polymer-element>3</polymer-element>' |
| 277 '<polymer-element>2</polymer-element>' |
| 278 '<polymer-element>1</polymer-element></body></html>', |
| 279 'a|test_2.html': |
| 280 '<!DOCTYPE html><html><head>' |
| 281 '</head><body>' |
| 282 '<polymer-element>1</polymer-element>' |
| 283 '<polymer-element>3</polymer-element>' |
| 284 '<polymer-element>2</polymer-element></body></html>', |
| 285 'a|test_3.html': |
| 286 '<!DOCTYPE html><html><head>' |
| 287 '</head><body>' |
| 288 '<polymer-element>2</polymer-element>' |
| 289 '<polymer-element>1</polymer-element>' |
| 290 '<polymer-element>3</polymer-element></body></html>', |
| 291 }); |
| 292 |
| 293 testPhases('imports cycle, self cycle', [[new ImportedElementInliner()]], { |
| 294 'a|test.html': |
| 295 '<!DOCTYPE html><html><head>' |
| 296 '<link rel="import" href="test_1.html">' |
| 297 '</head></html>', |
| 298 'a|test_1.html': |
| 299 '<!DOCTYPE html><html><head>' |
| 300 '<link rel="import" href="test_1.html">' |
| 301 '</head><body><polymer-element>1</polymer-element></html>', |
| 302 }, { |
| 303 'a|test.html': |
| 304 '<!DOCTYPE html><html><head>' |
| 305 '</head><body>' |
| 306 '<polymer-element>1</polymer-element></body></html>', |
| 307 'a|test_1.html': |
| 308 '<!DOCTYPE html><html><head>' |
| 309 '</head><body>' |
| 310 '<polymer-element>1</polymer-element></body></html>', |
| 311 }); |
| 312 |
| 313 testPhases('imports DAG', [[new ImportedElementInliner()]], { |
| 314 'a|test.html': |
| 315 '<!DOCTYPE html><html><head>' |
| 316 '<link rel="import" href="test_1.html">' |
| 317 '<link rel="import" href="test_2.html">' |
| 318 '</head></html>', |
| 319 'a|test_1.html': |
| 320 '<!DOCTYPE html><html><head>' |
| 321 '<link rel="import" href="test_3.html">' |
| 322 '</head><body><polymer-element>1</polymer-element></body></html>', |
| 323 'a|test_2.html': |
| 324 '<!DOCTYPE html><html><head>' |
| 325 '<link rel="import" href="test_3.html">' |
| 326 '</head><body><polymer-element>2</polymer-element></body></html>', |
| 327 'a|test_3.html': |
| 328 '<!DOCTYPE html><html><head>' |
| 329 '</head><body><polymer-element>3</polymer-element></body></html>', |
| 330 }, { |
| 331 'a|test.html': |
| 332 '<!DOCTYPE html><html><head>' |
| 333 '</head><body>' |
| 334 '<polymer-element>3</polymer-element>' |
| 335 '<polymer-element>1</polymer-element>' |
| 336 '<polymer-element>2</polymer-element></body></html>', |
| 337 'a|test_1.html': |
| 338 '<!DOCTYPE html><html><head>' |
| 339 '</head><body>' |
| 340 '<polymer-element>3</polymer-element>' |
| 341 '<polymer-element>1</polymer-element></body></html>', |
| 342 'a|test_2.html': |
| 343 '<!DOCTYPE html><html><head>' |
| 344 '</head><body>' |
| 345 '<polymer-element>3</polymer-element>' |
| 346 '<polymer-element>2</polymer-element></body></html>', |
| 347 'a|test_3.html': |
| 348 '<!DOCTYPE html><html><head>' |
| 349 '</head><body>' |
| 350 '<polymer-element>3</polymer-element></body></html>', |
| 351 }); |
| 352 } |
OLD | NEW |