OLD | NEW |
1 /** | 1 /** |
2 * @license | 2 * @license |
3 * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. | 3 * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
4 * This code may only be used under the BSD style license found at http://polyme
r.github.io/LICENSE.txt | 4 * This code may only be used under the BSD style license found at http://polyme
r.github.io/LICENSE.txt |
5 * The complete set of authors may be found at http://polymer.github.io/AUTHORS.
txt | 5 * The complete set of authors may be found at http://polymer.github.io/AUTHORS.
txt |
6 * The complete set of contributors may be found at http://polymer.github.io/CON
TRIBUTORS.txt | 6 * The complete set of contributors may be found at http://polymer.github.io/CON
TRIBUTORS.txt |
7 * Code distributed by Google as part of the polymer project is also | 7 * Code distributed by Google as part of the polymer project is also |
8 * subject to an additional IP rights grant found at http://polymer.github.io/PA
TENTS.txt | 8 * subject to an additional IP rights grant found at http://polymer.github.io/PA
TENTS.txt |
9 */ | 9 */ |
10 // jshint node: true | 10 // jshint node: true |
(...skipping 11 matching lines...) Expand all Loading... |
22 var abs = constants.ABS_URL; | 22 var abs = constants.ABS_URL; |
23 | 23 |
24 assert(abs.test('data:charset=utf8,'), 'data urls'); | 24 assert(abs.test('data:charset=utf8,'), 'data urls'); |
25 assert(abs.test('http://foo.com'), 'http'); | 25 assert(abs.test('http://foo.com'), 'http'); |
26 assert(abs.test('https://foo.com'), 'https'); | 26 assert(abs.test('https://foo.com'), 'https'); |
27 assert(abs.test('mailto:foo@bar.com'), 'mailto'); | 27 assert(abs.test('mailto:foo@bar.com'), 'mailto'); |
28 assert(abs.test('tel:+49123123456'), 'phonecall'); | 28 assert(abs.test('tel:+49123123456'), 'phonecall'); |
29 assert(abs.test('sms:1-123-123456'), 'sms'); | 29 assert(abs.test('sms:1-123-123456'), 'sms'); |
30 assert(abs.test('//foo.com'), 'protocol-free'); | 30 assert(abs.test('//foo.com'), 'protocol-free'); |
31 assert(abs.test('/components/'), '/'); | 31 assert(abs.test('/components/'), '/'); |
| 32 assert(abs.test('#foo'), 'hash url'); |
32 assert(!abs.test('../foo/bar.html'), '../'); | 33 assert(!abs.test('../foo/bar.html'), '../'); |
33 assert(!abs.test('bar.html'), 'sibling dependency'); | 34 assert(!abs.test('bar.html'), 'sibling dependency'); |
34 }); | 35 }); |
35 | 36 |
36 test('remote absolute urls', function() { | 37 test('remote absolute urls', function() { |
37 var rabs = constants.REMOTE_ABS_URL; | 38 var rabs = constants.REMOTE_ABS_URL; |
38 | 39 |
39 assert(rabs.test('http://foo.com'), 'http'); | 40 assert(rabs.test('http://foo.com'), 'http'); |
40 assert(rabs.test('https://foo.com'), 'https'); | 41 assert(rabs.test('https://foo.com'), 'https'); |
41 assert(rabs.test('//foo.com'), 'protocol-free'); | 42 assert(rabs.test('//foo.com'), 'protocol-free'); |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 }); | 107 }); |
107 | 108 |
108 test('Rewrite Paths', function() { | 109 test('Rewrite Paths', function() { |
109 function testPath(val, expected, abs, msg) { | 110 function testPath(val, expected, abs, msg) { |
110 var actual = pathresolver.rewriteRelPath(inputPath, outputPath, val, abs); | 111 var actual = pathresolver.rewriteRelPath(inputPath, outputPath, val, abs); |
111 assert.equal(actual, expected, msg); | 112 assert.equal(actual, expected, msg); |
112 } | 113 } |
113 | 114 |
114 testPath('biz.jpg', 'my-element/biz.jpg', null, 'local'); | 115 testPath('biz.jpg', 'my-element/biz.jpg', null, 'local'); |
115 testPath('http://foo/biz.jpg', 'http://foo/biz.jpg', null, 'remote'); | 116 testPath('http://foo/biz.jpg', 'http://foo/biz.jpg', null, 'remote'); |
| 117 testPath('#foo', '#foo', null, 'hash'); |
116 testPath('biz.jpg', 'bar/my-element/biz.jpg', '/foo/', 'build path'); | 118 testPath('biz.jpg', 'bar/my-element/biz.jpg', '/foo/', 'build path'); |
117 }); | 119 }); |
118 | 120 |
119 test('Resolve Paths', function() { | 121 test('Resolve Paths', function() { |
120 var html = [ | 122 var html = [ |
121 '<link rel="import" href="../polymer/polymer.html">', | 123 '<link rel="import" href="../polymer/polymer.html">', |
122 '<link rel="stylesheet" href="my-element.css">', | 124 '<link rel="stylesheet" href="my-element.css">', |
123 '<polymer-element name="my-element">', | 125 '<polymer-element name="my-element">', |
124 '<template>', | 126 '<template>', |
125 '<style>:host { background-image: url(background.svg); }</style>', | 127 '<style>:host { background-image: url(background.svg); }</style>', |
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
493 assert(vulcanized.indexOf('<style>polyfill-next-selector') > -1, 'polf
ill-next-selector is kept'); | 495 assert(vulcanized.indexOf('<style>polyfill-next-selector') > -1, 'polf
ill-next-selector is kept'); |
494 done(); | 496 done(); |
495 }); | 497 }); |
496 }); | 498 }); |
497 | 499 |
498 test('fallback on parse fail', function(done) { | 500 test('fallback on parse fail', function(done) { |
499 var input = '<style>div{\r\nwidth: {{ foo }};\n}\r\n</style>'; | 501 var input = '<style>div{\r\nwidth: {{ foo }};\n}\r\n</style>'; |
500 process({inputSrc: input, output: outputPath, strip: true}, function(out
puts) { | 502 process({inputSrc: input, output: outputPath, strip: true}, function(out
puts) { |
501 var vulcanized = outputs[outputPath]; | 503 var vulcanized = outputs[outputPath]; |
502 assert(vulcanized); | 504 assert(vulcanized); |
| 505 assert(vulcanized.indexOf('{{ foo }}') > -1, 'braces kept'); |
503 assert(vulcanized.indexOf(input.replace(/[\r\n]/g, '')) > -1, 'newline
s removed at least'); | 506 assert(vulcanized.indexOf(input.replace(/[\r\n]/g, '')) > -1, 'newline
s removed at least'); |
504 done(); | 507 done(); |
505 }); | 508 }); |
506 }); | 509 }); |
507 }); | 510 }); |
508 | 511 |
509 test('comment removal', function(done) { | 512 test('comment removal', function(done) { |
510 var options = {input: 'test/html/comments.html', output: outputPath, strip
: true}; | 513 var options = {input: 'test/html/comments.html', output: outputPath, strip
: true}; |
511 process(options, function(outputs) { | 514 process(options, function(outputs) { |
512 var vulcanized = outputs[outputPath]; | 515 var vulcanized = outputs[outputPath]; |
513 assert(vulcanized); | 516 assert(vulcanized); |
514 assert.equal(vulcanized.indexOf('@license'), -1, 'license comment at top
removed'); | 517 assert.equal(vulcanized.indexOf('@license'), -1, 'license comment at top
removed'); |
515 assert.equal(vulcanized.indexOf('comment 1'), -1, 'comment in body remov
ed'); | 518 assert.equal(vulcanized.indexOf('comment 1'), -1, 'comment in body remov
ed'); |
516 assert.equal(vulcanized.indexOf('comment 2'), -1, 'comment in template r
emoved'); | 519 assert.equal(vulcanized.indexOf('comment 2'), -1, 'comment in template r
emoved'); |
517 assert.equal(vulcanized.indexOf('comment 3'), -1, 'comment in style in t
emplate removed'); | 520 assert.equal(vulcanized.indexOf('comment 3'), -1, 'comment in style in t
emplate removed'); |
518 assert.equal(vulcanized.indexOf('comment 4'), -1, 'comment in polymer-el
ement removed'); | 521 assert.equal(vulcanized.indexOf('comment 4'), -1, 'comment in polymer-el
ement removed'); |
519 assert.equal(vulcanized.indexOf('comment 5'), -1, 'comment in script rem
oved'); | 522 assert.equal(vulcanized.indexOf('comment 5'), -1, 'comment in script rem
oved'); |
520 done(); | 523 done(); |
521 }); | 524 }); |
522 }); | 525 }); |
523 | 526 |
| 527 test('keep fallback declarations', function(done) { |
| 528 var options = {inputSrc: '<style>div { display: flex; display: -webkit-fle
x; }</style>', output: outputPath, strip: true}; |
| 529 process(options, function(outputs) { |
| 530 var vulcanized = outputs[outputPath]; |
| 531 assert(vulcanized); |
| 532 assert(vulcanized.indexOf('display: flex') > -1, 'keep flex'); |
| 533 assert(vulcanized.indexOf('display: -webkit-flex') > -1, 'keep -webkit-f
lex'); |
| 534 done(); |
| 535 }); |
| 536 }); |
| 537 |
524 }); | 538 }); |
525 | 539 |
526 test('Multiple Polymer Invocations', function(done) { | 540 test('Multiple Polymer Invocations', function(done) { |
527 var options = {input: 'test/html/multiple.html', output: outputPath}; | 541 var options = {input: 'test/html/multiple.html', output: outputPath}; |
528 process(options, function(outputs) { | 542 process(options, function(outputs) { |
529 var vulcanized = outputs[outputPath]; | 543 var vulcanized = outputs[outputPath]; |
530 assert(vulcanized); | 544 assert(vulcanized); |
531 var $ = require('whacko').load(vulcanized); | 545 var $ = require('whacko').load(vulcanized); |
532 var getText = require('../lib/utils.js').getTextContent; | 546 var getText = require('../lib/utils.js').getTextContent; |
533 var xa = $('polymer-element[name="x-a"] > script'); | 547 var xa = $('polymer-element[name="x-a"] > script'); |
534 var xb = $('polymer-element[name="x-b"] > script'); | 548 var xb = $('polymer-element[name="x-b"] > script'); |
535 assert.equal(getText(xa), 'Polymer(\'x-a\',{})'); | 549 assert.equal(getText(xa), 'Polymer(\'x-a\',{})'); |
536 assert.equal(getText(xb), 'Polymer(\'x-b\',{})'); | 550 assert.equal(getText(xb), 'Polymer(\'x-b\',{})'); |
537 done(); | 551 done(); |
538 }); | 552 }); |
539 }); | 553 }); |
540 | 554 |
541 }); | 555 }); |
OLD | NEW |