Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Unified Diff: lib/src/prism/tests/testrunner-tests.js

Issue 1418513006: update elements and fix some bugs (Closed) Base URL: git@github.com:dart-lang/polymer_elements.git@master
Patch Set: code review updates Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/src/prism/tests/run.js ('k') | lib/src/prism/themes/prism.css » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/src/prism/tests/testrunner-tests.js
diff --git a/lib/src/prism/tests/testrunner-tests.js b/lib/src/prism/tests/testrunner-tests.js
new file mode 100644
index 0000000000000000000000000000000000000000..24ad32cd8af609a49d58db4a4ef8f62adbfa3fe5
--- /dev/null
+++ b/lib/src/prism/tests/testrunner-tests.js
@@ -0,0 +1,166 @@
+"use strict";
+
+var assert = require("chai").assert;
+var TokenStreamTransformer = require("./helper/token-stream-transformer");
+var TestCase = require("./helper/test-case");
+
+
+//region Token Stream Transformer
+describe("The token stream transformer",
+ function () {
+ it("should handle all kinds of simple transformations",
+ function () {
+ var tokens = [
+ {type: "type", content: "content"},
+ "string"
+ ];
+
+ var expected = [
+ ["type", "content"],
+ "string"
+ ];
+
+ assert.deepEqual(TokenStreamTransformer.simplify(tokens), expected);
+ }
+ );
+
+
+ it("should handle nested structures",
+ function () {
+ var tokens = [
+ {
+ type: "type",
+ content: [
+ {
+ type: "insideType", content:
+ [
+ {type: "insideInsideType", content: "content"}
+ ]
+ }
+ ]
+ }
+ ];
+
+ var expected = [
+ ["type", [
+ ["insideType", [
+ ["insideInsideType", "content"]
+ ]]
+ ]]
+ ];
+
+ assert.deepEqual(TokenStreamTransformer.simplify(tokens), expected);
+ }
+ );
+
+
+ it("should strip empty tokens",
+ function () {
+ var tokenStream = [
+ "",
+ "\r\n",
+ "\t",
+ " "
+ ];
+
+ var expectedSimplified = [];
+
+ assert.deepEqual(TokenStreamTransformer.simplify(tokenStream), expectedSimplified);
+ }
+ );
+
+
+ it("should strip empty token tree branches",
+ function () {
+ var tokenStream = [
+ {
+ type: "type",
+ content: [
+ ["", ""],
+ "",
+ {type: "nested", content: [""]}
+ ]
+ },
+ [[[[[[[""]]]]]]]
+ ];
+
+ var expectedSimplified = [
+ ["type", [
+ ["nested", []]
+ ]]
+ ];
+
+ assert.deepEqual(TokenStreamTransformer.simplify(tokenStream), expectedSimplified);
+ }
+ );
+
+
+ it("should ignore all properties in tokens except value and content",
+ function () {
+
+ var tokenStream = [
+ {type: "type", content: "content", alias: "alias"}
+ ];
+
+ var expectedSimplified = [
+ ["type", "content"]
+ ];
+
+ assert.deepEqual(TokenStreamTransformer.simplify(tokenStream), expectedSimplified);
+ }
+ );
+ }
+);
+//endregion
+
+
+//region Language name parsing
+describe("The language name parsing",
+ function () {
+ it("should use the last language as the main language if no language is specified",
+ function () {
+ assert.deepEqual(
+ TestCase.parseLanguageNames("a"),
+ {
+ languages: ["a"],
+ mainLanguage: "a"
+ }
+ );
+
+ assert.deepEqual(
+ TestCase.parseLanguageNames("a+b+c"),
+ {
+ languages: ["a", "b", "c"],
+ mainLanguage: "c"
+ }
+ );
+ }
+ );
+
+
+ it("should use the specified language as main language",
+ function () {
+ assert.deepEqual(
+ TestCase.parseLanguageNames("a+b!+c"),
+ {
+ languages: ["a", "b", "c"],
+ mainLanguage: "b"
+ }
+ );
+ }
+ );
+
+
+ it("should throw an error if there are multiple main languages",
+ function () {
+ assert.throw(
+ function () {
+ TestCase.parseLanguageNames("a+b!+c!");
+ },
+ "There are multiple main languages defined."
+ );
+ }
+ );
+ }
+);
+//endregion
« no previous file with comments | « lib/src/prism/tests/run.js ('k') | lib/src/prism/themes/prism.css » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698