From ff443e90db50ff60c3683589e8c1f87efcf79d68 Mon Sep 17 00:00:00 2001 From: Richard Hinkamp Date: Mon, 7 Nov 2016 11:16:24 +0100 Subject: [PATCH] Test for relative paths --- config/relativepath.js | 13 +++++++++++++ tests/relativepath/assets/css/application.css | 13 +++++++++++++ tests/relativepath/assets/images/testbg.png | Bin 0 -> 39094 bytes tests/relativepath/relativepath.html | 11 +++++++++++ tests/relativepath/relativepath_test.js | 18 ++++++++++++++++++ 5 files changed, 55 insertions(+) create mode 100644 config/relativepath.js create mode 100644 tests/relativepath/assets/css/application.css create mode 100644 tests/relativepath/assets/images/testbg.png create mode 100644 tests/relativepath/relativepath.html create mode 100644 tests/relativepath/relativepath_test.js diff --git a/config/relativepath.js b/config/relativepath.js new file mode 100644 index 0000000..9dafc11 --- /dev/null +++ b/config/relativepath.js @@ -0,0 +1,13 @@ +module.exports = { + options: { + assets: ['assets/**'], + baseDir: 'tmp/relativepath', + deleteOriginals: true, + hash: '123456789' + }, + files: [{ + expand: true, + cwd: 'tmp/relativepath', + src: ['assets/css/*.css', '*.html'] + }] +}; diff --git a/tests/relativepath/assets/css/application.css b/tests/relativepath/assets/css/application.css new file mode 100644 index 0000000..52bbaa3 --- /dev/null +++ b/tests/relativepath/assets/css/application.css @@ -0,0 +1,13 @@ +@charset "UTF-8"; + +body { + background-image: url(../images/testbg.png); +} + +div.test { + background-image: url(../../assets/images/testbg.png); +} + +div.test2 { + background-image: url(/assets/images/testbg.png); +} diff --git a/tests/relativepath/assets/images/testbg.png b/tests/relativepath/assets/images/testbg.png new file mode 100644 index 0000000000000000000000000000000000000000..ab205ef30b2fa68ca716d18e99f63a830f7a5d5a GIT binary patch literal 39094 zcmV)JK)b(*P)-?cUF(w(pDwT$4RpG-2A8o-Z*n$zB2q9_ zEemRf&j+TeXHT21@M#FAwR&kT_OIICIV3zWz8^EnCmvF^e(J{OQCtFq5hB`TNz1Iu zpU?0Ac*mc9{^H&}_ulj0u3YV?#1cU>L{wEm1T+9cL_knLGgC?DffAx~9so-G@W6;D z<5n2}AmEebF2foZLUiK9aE^}84W-B5zeZ)%ezLetA#0d4#g5kRLA z&H&5^>2mWDai zqh|b~DU>M`bDV|%J2~w*9aR`j0z~Az{$^$-W=6!5;G$+WMo=t1e92wYiJx;FGZPXK z!YS?`fEk#9fq|JbGZ9GuL|#dK7+gZ*<)M@N+v9X!Hf*vJFGu

= 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 + + + + + Test + + + Test + + diff --git a/tests/relativepath/relativepath_test.js b/tests/relativepath/relativepath_test.js new file mode 100644 index 0000000..1529c2c --- /dev/null +++ b/tests/relativepath/relativepath_test.js @@ -0,0 +1,18 @@ +'use strict'; + +var grunt = require('grunt'); + +module.exports = { + + relativepath: function(test) { + var html = grunt.file.read('tmp/relativepath/relativepath.html'); + test.ok(html.match(/"\/assets\/css\/application\.123456789\.css"/), 'testing /assets/css/application.css replaced in HTML'); + + var css = grunt.file.read('tmp/relativepath/assets/css/application.123456789.css'); + test.ok(css.match(/url\(\.\.\/images\/testbg\.123456789\.png\)/), 'testing ../images/testbg.png replaced in busted CSS'); + test.ok(css.match(/url\(\.\.\/\.\.\/assets\/images\/testbg\.123456789\.png\)/), 'testing ../../assets/images/testbg.png replaced in busted CSS'); + + test.done(); + } + +};