Skip to content

Commit 7d91db8

Browse files
Handle weirder relative paths.
1 parent b76ecb6 commit 7d91db8

File tree

10 files changed

+71
-4
lines changed

10 files changed

+71
-4
lines changed

tasks/filerev_replace.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ module.exports = function(grunt) {
4949

5050
function asset_path_regexp( asset_path ) {
5151
return new RegExp( STARTING_DELIMITER + // p1
52-
ASSET_PATH_START + escape_for_regexp( asset_path ) + ASSET_PATH_END + // p2
52+
ASSET_PATH_START + escape_for_regexp( path.basename( asset_path ) ) + ASSET_PATH_END + // p2
5353
ENDING_DELIMITER, // p3
5454
'ig' );
5555
}

test/expected/assets/compiled/scripts.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ var path = '/images/ajax-loader.4e26f87c.gif#a';
2323
var path = 'ajax-loader.gif';
2424
var path = '/images/ajax-loader';
2525
var path = '/images/ajax-loader.gif.bak';
26+
var path = '/images/not-ajax-loader.gif';
2627
var path = 'images/ajax-loader.gif';
2728
var path = '/more/images/ajax-loader.gif';
2829
var path = '/cool_images/ajax-loader.gif';

test/expected/assets/compiled/styles.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ body { background: url('/images/ajax-loader.4e26f87c.gif#a'); }
2323
body { background: url('ajax-loader.gif'); }
2424
body { background: url('/images/ajax-loader'); }
2525
body { background: url('/images/ajax-loader.gif.bak'); }
26+
body { background: url('/images/not-ajax-loader.gif'); }
2627
body { background: url('images/ajax-loader.gif'); }
2728
body { background: url('/more/images/ajax-loader.gif'); }
2829
body { background: url('/cool_images/ajax-loader.gif'); }

test/expected/views/index.html

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<!-- Absolute path -->
2+
<img src="/images/ajax-loader.4e26f87c.gif" />
3+
4+
<!-- Relative path -->
5+
<img src="/images/ajax-loader.4e26f87c.gif" />
6+
<img src="/images/ajax-loader.4e26f87c.gif" />
7+
<img src="/images/ajax-loader.4e26f87c.gif" />
8+
9+
<!-- Delimiters -->
10+
<img src="/images/ajax-loader.4e26f87c.gif" /><img src="/images/ajax-loader.4e26f87c.gif" />
11+
12+
<!-- Case insensitive -->
13+
<img src="/images/ajax-loader.4e26f87c.gif" />
14+
15+
<!-- With query string and anchor -->
16+
<img src="/images/ajax-loader.4e26f87c.gif?a=b" />
17+
<img src="/images/ajax-loader.4e26f87c.gif#a" />
18+
19+
<!-- Invalid -->
20+
<img src="ajax-loader.gif" />
21+
<img src="/images/ajax-loader" />
22+
<img src="/images/ajax-loader.gif.bak" />
23+
<img src="/images/not-ajax-loader.gif" />
24+
<img src="/more/images/ajax-loader.gif" />
25+
<img src="/cool_images/ajax-loader.gif" />
26+
<img src="http://othersite.com/images/ajax-loader.gif" />

test/expected/views/media/index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
<img src="ajax-loader.gif" />
2121
<img src="/images/ajax-loader" />
2222
<img src="/images/ajax-loader.gif.bak" />
23+
<img src="/images/not-ajax-loader.gif" />
2324
<img src="images/ajax-loader.gif" />
2425
<img src="/more/images/ajax-loader.gif" />
2526
<img src="/cool_images/ajax-loader.gif" />

test/filerev_replace_test.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,15 @@ exports.filerev_replace = {
2424
html: function(test) {
2525
test.expect(1);
2626

27+
var actual = grunt.file.read('tmp/views/index.html');
28+
var expected = grunt.file.read('test/expected/views/index.html');
29+
test.equal(actual, expected);
30+
31+
test.done();
32+
},
33+
html_subfolder: function(test) {
34+
test.expect(1);
35+
2736
var actual = grunt.file.read('tmp/views/media/index.html');
2837
var expected = grunt.file.read('test/expected/views/media/index.html');
2938
test.equal(actual, expected);

test/fixtures/assets/compiled/scripts.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ var path = '/images/ajax-loader.gif';
44
// Relative path
55
var path = '/oops/../images/ajax-loader.gif';
66
var path = '../images/ajax-loader.gif';
7-
var path = '../oops/../images/ajax-loader.gif';
7+
var path = '../oops/../images/oops/../ajax-loader.gif';
88

99
// Delimiters
1010
var path = "/images/ajax-loader.gif";
@@ -23,6 +23,7 @@ var path = '/images/ajax-loader.gif#a';
2323
var path = 'ajax-loader.gif';
2424
var path = '/images/ajax-loader';
2525
var path = '/images/ajax-loader.gif.bak';
26+
var path = '/images/not-ajax-loader.gif';
2627
var path = 'images/ajax-loader.gif';
2728
var path = '/more/images/ajax-loader.gif';
2829
var path = '/cool_images/ajax-loader.gif';

test/fixtures/assets/compiled/styles.css

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ body { background: url('/images/ajax-loader.gif'); }
44
/* Relative path */
55
body { background: url('/oops/../images/ajax-loader.gif'); }
66
body { background: url('../images/ajax-loader.gif'); }
7-
body { background: url('../oops/../images/ajax-loader.gif'); }
7+
body { background: url('../oops/../images/oops/../ajax-loader.gif'); }
88

99
/* Delimiters */
1010
body { background: url("/images/ajax-loader.gif"); }
@@ -23,6 +23,7 @@ body { background: url('/images/ajax-loader.gif#a'); }
2323
body { background: url('ajax-loader.gif'); }
2424
body { background: url('/images/ajax-loader'); }
2525
body { background: url('/images/ajax-loader.gif.bak'); }
26+
body { background: url('/images/not-ajax-loader.gif'); }
2627
body { background: url('images/ajax-loader.gif'); }
2728
body { background: url('/more/images/ajax-loader.gif'); }
2829
body { background: url('/cool_images/ajax-loader.gif'); }

test/fixtures/views/index.html

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<!-- Absolute path -->
2+
<img src="/images/ajax-loader.gif" />
3+
4+
<!-- Relative path -->
5+
<img src="/oops/../images/ajax-loader.gif" />
6+
<img src="images/ajax-loader.gif" />
7+
<img src="oops/../images/oops/../ajax-loader.gif" />
8+
9+
<!-- Delimiters -->
10+
<img src="/images/ajax-loader.gif" /><img src="/images/ajax-loader.gif" />
11+
12+
<!-- Case insensitive -->
13+
<img src="/IMAGES/ajax-loader.gif" />
14+
15+
<!-- With query string and anchor -->
16+
<img src="/images/ajax-loader.gif?a=b" />
17+
<img src="/images/ajax-loader.gif#a" />
18+
19+
<!-- Invalid -->
20+
<img src="ajax-loader.gif" />
21+
<img src="/images/ajax-loader" />
22+
<img src="/images/ajax-loader.gif.bak" />
23+
<img src="/images/not-ajax-loader.gif" />
24+
<img src="/more/images/ajax-loader.gif" />
25+
<img src="/cool_images/ajax-loader.gif" />
26+
<img src="http://othersite.com/images/ajax-loader.gif" />

test/fixtures/views/media/index.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<!-- Relative path -->
55
<img src="/oops/../images/ajax-loader.gif" />
66
<img src="../images/ajax-loader.gif" />
7-
<img src="../oops/../images/ajax-loader.gif" />
7+
<img src="../oops/../images/oops/../ajax-loader.gif" />
88

99
<!-- Delimiters -->
1010
<img src="/images/ajax-loader.gif" /><img src="/images/ajax-loader.gif" />
@@ -20,6 +20,7 @@
2020
<img src="ajax-loader.gif" />
2121
<img src="/images/ajax-loader" />
2222
<img src="/images/ajax-loader.gif.bak" />
23+
<img src="/images/not-ajax-loader.gif" />
2324
<img src="images/ajax-loader.gif" />
2425
<img src="/more/images/ajax-loader.gif" />
2526
<img src="/cool_images/ajax-loader.gif" />

0 commit comments

Comments
 (0)