|
1 | | -import {describe, it, expect, beforeEach, ddescribe, iit, xit, el} from 'angular2/testing_internal'; |
| 1 | +import { |
| 2 | + describe, |
| 3 | + it, |
| 4 | + expect, |
| 5 | + beforeEach, |
| 6 | + ddescribe, |
| 7 | + iit, |
| 8 | + xit, |
| 9 | + el, |
| 10 | + inject |
| 11 | +} from 'angular2/testing_internal'; |
| 12 | +import {IS_DART} from 'angular2/src/facade/lang'; |
2 | 13 | import {UrlResolver} from 'angular2/src/compiler/url_resolver'; |
3 | 14 |
|
4 | 15 | export function main() { |
@@ -69,14 +80,50 @@ export function main() { |
69 | 80 | expect(resolver.resolve('foo/baz', '/bar')).toEqual('/bar'); |
70 | 81 | expect(resolver.resolve('foo/baz/', '/bar')).toEqual('/bar'); |
71 | 82 | }); |
72 | | - }); |
73 | 83 |
|
74 | | - describe('corner and error cases', () => { |
75 | | - it('should encode URLs before resolving', () => { |
76 | | - expect(resolver.resolve('foo/baz', `<p #p>Hello |
77 | | - </p>`)) |
78 | | - .toEqual('foo/%3Cp%20#p%3EHello%0A%20%20%20%20%20%20%20%20%3C/p%3E'); |
| 84 | + it('should not resolve urls against the baseUrl when the url contains a scheme', () => { |
| 85 | + resolver = new UrlResolver('my_packages_dir'); |
| 86 | + expect(resolver.resolve("base/", 'package:file')).toEqual('my_packages_dir/file'); |
| 87 | + expect(resolver.resolve("base/", 'http:super_file')).toEqual('http:super_file'); |
| 88 | + expect(resolver.resolve("base/", './mega_file')).toEqual('base/mega_file'); |
79 | 89 | }); |
80 | 90 | }); |
| 91 | + |
| 92 | + describe('packages', |
| 93 | + () => { |
| 94 | + it('should resolve a url based on the application package', () => { |
| 95 | + resolver = new UrlResolver('my_packages_dir'); |
| 96 | + expect(resolver.resolve(null, 'package:some/dir/file.txt')) |
| 97 | + .toEqual('my_packages_dir/some/dir/file.txt'); |
| 98 | + expect(resolver.resolve(null, 'some/dir/file.txt')).toEqual('some/dir/file.txt'); |
| 99 | + }); |
| 100 | + |
| 101 | + it('should contain a default value of "/packages" when nothing is provided for DART', |
| 102 | + inject([UrlResolver], (resolver) => { |
| 103 | + if (IS_DART) { |
| 104 | + expect(resolver.resolve(null, 'package:file')).toEqual('/packages/file'); |
| 105 | + } |
| 106 | + })); |
| 107 | + |
| 108 | + it('should contain a default value of "/" when nothing is provided for TS/ESM', |
| 109 | + inject([UrlResolver], (resolver) => { |
| 110 | + if (!IS_DART) { |
| 111 | + expect(resolver.resolve(null, 'package:file')).toEqual('/file'); |
| 112 | + } |
| 113 | + })); |
| 114 | + |
| 115 | + it('should resolve a package value when present within the baseurl', () => { |
| 116 | + resolver = new UrlResolver('/my_special_dir'); |
| 117 | + expect(resolver.resolve('package:some_dir/', 'matias.html')) |
| 118 | + .toEqual('/my_special_dir/some_dir/matias.html'); |
| 119 | + }); |
| 120 | + }) |
| 121 | + |
| 122 | + describe('corner and error cases', () => { |
| 123 | + it('should encode URLs before resolving', () => { |
| 124 | + expect(resolver.resolve('foo/baz', `<p #p>Hello |
| 125 | + </p>`)).toEqual('foo/%3Cp%20#p%3EHello%0A%20%20%20%20%20%20%20%20%3C/p%3E'); |
| 126 | + }); |
| 127 | + }); |
81 | 128 | }); |
82 | 129 | } |
0 commit comments