Files
2020-04-06 08:53:12 +03:00

95 lines
3.9 KiB
TypeScript

import { cssTreeParse } from "@nativescript/core/css/css-tree-parser";
import { parse as reworkCssParse } from "@nativescript/core/css";
import { assert } from "chai";
describe("css-tree parser compatible with rework ", () => {
it("basic selector", () => {
const testCase = ".test { color: red; }";
const reworkAST = reworkCssParse(testCase, { source: "file.css" });
const cssTreeAST = cssTreeParse(testCase, "file.css");
assert.deepEqual(cssTreeAST, reworkAST);
});
it("empty rule", () => {
const css = `.test {
color: red;
;
}`;
const reworkAST = reworkCssParse(css, { source: "file.css" });
const cssTreeAST = cssTreeParse(css, "file.css");
assert.deepEqual(cssTreeAST, reworkAST);
});
it("@keyframes", () => {
const testCase = ".test { animation-name: test; } @keyframes test { from { background-color: red; } to { background-color: blue; } } .test { color: red; }";
const reworkAST = reworkCssParse(testCase, { source: "file.css" });
const cssTreeAST = cssTreeParse(testCase, "file.css");
assert.deepEqual(cssTreeAST, reworkAST);
});
it("@media", () => {
const testCase = "@media screen and (max-width: 600px) { body { background-color: olive; } } .test { color: red; }";
const reworkAST = reworkCssParse(testCase, { source: "file.css" });
const cssTreeAST = cssTreeParse(testCase, "file.css");
assert.deepEqual(cssTreeAST, reworkAST);
});
it("@supports", () => {
const testCase = "@supports not (display: grid) { div { float: right; } } .test { color: red; }";
const reworkAST = reworkCssParse(testCase, { source: "file.css" });
const cssTreeAST = cssTreeParse(testCase, "file.css");
assert.deepEqual(cssTreeAST, reworkAST);
});
it("@page", () => {
const testCase = "@page :first { margin: 2cm; } .test { color: red; }";
const reworkAST = reworkCssParse(testCase, { source: "file.css" });
const cssTreeAST = cssTreeParse(testCase, "file.css");
assert.deepEqual(cssTreeAST, reworkAST);
});
it("@document", () => {
const testCase = "@document url(\"https://www.example.com/\") { h1 { color: green; } } .test { color: red; }";
const reworkAST = reworkCssParse(testCase, { source: "file.css" });
const cssTreeAST = cssTreeParse(testCase, "file.css");
assert.deepEqual(cssTreeAST, reworkAST);
});
it("@font-face", () => {
const testCase = "@font-face { font-family: \"Open Sans\"; src: url(\"/fonts/OpenSans-Regular-webfont.woff2\") format(\"woff2\"), url(\"/fonts/OpenSans-Regular-webfont.woff\") format(\"woff\"); } .test { color: red; }";
const reworkAST = reworkCssParse(testCase, { source: "file.css" });
const cssTreeAST = cssTreeParse(testCase, "file.css");
assert.deepEqual(cssTreeAST, reworkAST);
});
it("@import", () => {
const testCase = "@import url('landscape.css') screen and (orientation:landscape); @import url(\"fineprint.css\") print; .test { color: red; }";
const reworkAST = reworkCssParse(testCase, { source: "file.css" });
const cssTreeAST = cssTreeParse(testCase, "file.css");
assert.deepEqual(cssTreeAST, reworkAST);
});
it("@charset", () => {
const testCase = "@charset \"utf-8\"; .test { color: red; }";
const reworkAST = reworkCssParse(testCase, { source: "file.css" });
const cssTreeAST = cssTreeParse(testCase, "file.css");
assert.deepEqual(cssTreeAST, reworkAST);
});
it("@namespace", () => {
const testCase = "@namespace svg url(http://www.w3.org/2000/svg); .test { color: red; }";
const reworkAST = reworkCssParse(testCase, { source: "file.css" });
const cssTreeAST = cssTreeParse(testCase, "file.css");
assert.deepEqual(cssTreeAST, reworkAST);
});
});