143 lines
4.0 KiB
JavaScript
143 lines
4.0 KiB
JavaScript
/*global describe, it */
|
|
"use strict";
|
|
|
|
var fs = require("fs");
|
|
var assert = require("assert");
|
|
var postcss = require("postcss");
|
|
var urlrewrite = require("../index.js");
|
|
|
|
var fixture = function (name) {
|
|
return fs.readFileSync("test/fixtures/" + name + ".css", "utf8").trim();
|
|
};
|
|
|
|
var compareFixtures = function (name, options) {
|
|
var actual = postcss(urlrewrite(options)).process(fixture(name)).css.trim();
|
|
var expected = fixture(name + ".out");
|
|
return assert.equal(actual, expected);
|
|
};
|
|
|
|
describe("postcss-urlrewrite", function () {
|
|
describe("paths in absolute rules", function () {
|
|
it("should be replaced", function () {
|
|
var config = {
|
|
rules: [
|
|
{ from: "http://www.google.com/", to: "http://yandex.ru/" },
|
|
{ from: /^\//, to: "http://mysite.com/" },
|
|
],
|
|
};
|
|
|
|
compareFixtures("absolute", config);
|
|
});
|
|
});
|
|
|
|
describe("different file types", function () {
|
|
it("should return must not affect replacement", function () {
|
|
var config = {
|
|
rules: [{ from: "local", to: "global" }],
|
|
};
|
|
|
|
compareFixtures("backgrounds", config);
|
|
});
|
|
});
|
|
|
|
describe("data-uris", function () {
|
|
it("should be replaceable", function () {
|
|
var config = {
|
|
rules: function (uri) {
|
|
uri.href("image.png");
|
|
},
|
|
};
|
|
|
|
compareFixtures("datauri", config);
|
|
});
|
|
});
|
|
|
|
describe('only "content" and "cursor" properties', function () {
|
|
it("should be updated", function () {
|
|
var config = {
|
|
properties: ["content", "cursor"],
|
|
rules: [{ from: "local", to: "global" }],
|
|
};
|
|
|
|
compareFixtures("filter", config);
|
|
});
|
|
});
|
|
|
|
describe("fonts src with ie hacks", function () {
|
|
it("should be replaced without errors", function () {
|
|
var config = {
|
|
rules: [{ from: "local", to: "global" }],
|
|
};
|
|
|
|
compareFixtures("fonts", config);
|
|
});
|
|
});
|
|
|
|
describe('only "content" and "cursor" properties', function () {
|
|
it("should be updated", function () {
|
|
var config = {
|
|
imports: true,
|
|
properties: false,
|
|
rules: [{ from: "local", to: "global" }],
|
|
};
|
|
|
|
compareFixtures("imports", config);
|
|
});
|
|
});
|
|
|
|
describe("multiple url() in property value", function () {
|
|
it("should be replaced without errors", function () {
|
|
var config = {
|
|
rules: [{ from: "local", to: "global" }],
|
|
};
|
|
|
|
compareFixtures("multiple", config);
|
|
});
|
|
});
|
|
|
|
describe("all properties from css 2.1 spec", function () {
|
|
it("should be replaceable", function () {
|
|
var config = {
|
|
rules: [{ from: "local", to: "global" }],
|
|
};
|
|
|
|
compareFixtures("properties", config);
|
|
});
|
|
});
|
|
|
|
describe("if multiple rules match value", function () {
|
|
it("only first should trigger replace", function () {
|
|
var config = {
|
|
rules: [
|
|
{ from: /local\/test/, to: "$&1" },
|
|
{ from: /global\/test/, to: "$&2" },
|
|
{ from: /test/, to: "$&3" },
|
|
],
|
|
};
|
|
|
|
compareFixtures("rules", config);
|
|
});
|
|
});
|
|
|
|
describe('if properties value is "true"', function () {
|
|
it("it should not return error", function () {
|
|
var config = {
|
|
properties: true,
|
|
rules: [{ from: "local", to: "global" }],
|
|
};
|
|
|
|
compareFixtures("properties-default", config);
|
|
});
|
|
});
|
|
|
|
describe("if blank url()", function () {
|
|
it("it should not return error", function () {
|
|
var config = {
|
|
rules: [{ from: "local", to: "global" }],
|
|
};
|
|
|
|
compareFixtures("blank-url", config);
|
|
});
|
|
});
|
|
});
|