Commit 85ed18ff7987fd4fb0962db93f28d807eb874065

Golmote 2015-09-05T16:22:46

Merge pull request #735 from Golmote/tests-php Add tests for PHP

diff --git a/tests/languages/markup+php/markup_feature.test b/tests/languages/markup+php/markup_feature.test
new file mode 100644
index 0000000..b771f46
--- /dev/null
+++ b/tests/languages/markup+php/markup_feature.test
@@ -0,0 +1,37 @@
+<div class="foo"></div>
+
+----------------------------------------------------
+
+[
+	["markup", [
+		["tag", [
+			["tag", [
+				["punctuation", "<"],
+				"div"
+			]],
+			["attr-name", [
+				"class"
+			]],
+			["attr-value", [
+				["punctuation", "="],
+				["punctuation", "\""],
+				"foo",
+				["punctuation", "\""]
+			]],
+			["punctuation", ">"]
+		]]
+	]],
+	["markup", [
+		["tag", [
+			["tag", [
+				["punctuation", "</"],
+				"div"
+			]],
+			["punctuation", ">"]
+		]]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for markup in PHP.
\ No newline at end of file
diff --git a/tests/languages/php/comment_feature.test b/tests/languages/php/comment_feature.test
new file mode 100644
index 0000000..c728423
--- /dev/null
+++ b/tests/languages/php/comment_feature.test
@@ -0,0 +1,18 @@
+//
+// foobar
+/**/
+/* foo
+bar */
+
+----------------------------------------------------
+
+[
+	["comment", "//"],
+	["comment", "// foobar"],
+	["comment", "/**/"],
+	["comment", "/* foo\r\nbar */"]
+]
+
+----------------------------------------------------
+
+Checks for single-line and multi-line comments.
\ No newline at end of file
diff --git a/tests/languages/php/constant_feature.test b/tests/languages/php/constant_feature.test
new file mode 100644
index 0000000..c1c5330
--- /dev/null
+++ b/tests/languages/php/constant_feature.test
@@ -0,0 +1,15 @@
+AZ
+PRISM
+FOOBAR_42
+
+----------------------------------------------------
+
+[
+	["constant", "AZ"],
+	["constant", "PRISM"],
+	["constant", "FOOBAR_42"]
+]
+
+----------------------------------------------------
+
+Checks for constants.
\ No newline at end of file
diff --git a/tests/languages/php/delimiter_feature.test b/tests/languages/php/delimiter_feature.test
new file mode 100644
index 0000000..697319f
--- /dev/null
+++ b/tests/languages/php/delimiter_feature.test
@@ -0,0 +1,15 @@
+<? ?>
+<?php ?>
+
+----------------------------------------------------
+
+[
+	["delimiter", "<?"],
+	["delimiter", "?>"],
+	["delimiter", "<?php"],
+	["delimiter", "?>"]
+]
+
+----------------------------------------------------
+
+Checks for delimiters.
\ No newline at end of file
diff --git a/tests/languages/php/keyword_feature.test b/tests/languages/php/keyword_feature.test
new file mode 100644
index 0000000..9505114
--- /dev/null
+++ b/tests/languages/php/keyword_feature.test
@@ -0,0 +1,76 @@
+and or xor array
+as break case
+cfunction
+class;
+const continue
+declare default
+die do else
+elseif enddeclare
+endfor endforeach
+endif endswitch
+endwhile
+extends;
+for foreach function
+include include_once
+global if
+new;
+return
+static switch
+use;
+require require_once
+var while abstract
+interface;
+public
+implements;
+private
+protected parent
+throw null echo
+print trait;
+namespace;
+final yield goto
+instanceof;
+finally
+try catch
+
+----------------------------------------------------
+
+[
+	["keyword", "and"], ["keyword", "or"], ["keyword", "xor"], ["keyword", "array"],
+	["keyword", "as"], ["keyword", "break"], ["keyword", "case"],
+	["keyword", "cfunction"],
+	["keyword", "class"], ["punctuation", ";"],
+	["keyword", "const"], ["keyword", "continue"],
+	["keyword", "declare"], ["keyword", "default"],
+	["keyword", "die"], ["keyword", "do"], ["keyword", "else"],
+	["keyword", "elseif"], ["keyword", "enddeclare"],
+	["keyword", "endfor"], ["keyword", "endforeach"],
+	["keyword", "endif"], ["keyword", "endswitch"],
+	["keyword", "endwhile"],
+	["keyword", "extends"], ["punctuation", ";"],
+	["keyword", "for"], ["keyword", "foreach"], ["keyword", "function"],
+	["keyword", "include"], ["keyword", "include_once"],
+	["keyword", "global"], ["keyword", "if"],
+	["keyword", "new"], ["punctuation", ";"],
+	["keyword", "return"],
+	["keyword", "static"], ["keyword", "switch"],
+	["keyword", "use"], ["punctuation", ";"],
+	["keyword", "require"], ["keyword", "require_once"],
+	["keyword", "var"], ["keyword", "while"], ["keyword", "abstract"],
+	["keyword", "interface"], ["punctuation", ";"],
+	["keyword", "public"],
+	["keyword", "implements"], ["punctuation", ";"],
+	["keyword", "private"],
+	["keyword", "protected"], ["keyword", "parent"],
+	["keyword", "throw"], ["keyword", "null"], ["keyword", "echo"],
+	["keyword", "print"],
+	["keyword", "trait"], ["punctuation", ";"],
+	["keyword", "namespace"], ["punctuation", ";"],
+	["keyword", "final"], ["keyword", "yield"], ["keyword", "goto"],
+	["keyword", "instanceof"], ["punctuation", ";"],
+	["keyword", "finally"],
+	["keyword", "try"], ["keyword", "catch"]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/tests/languages/php/package_feature.test b/tests/languages/php/package_feature.test
new file mode 100644
index 0000000..e1d3e5f
--- /dev/null
+++ b/tests/languages/php/package_feature.test
@@ -0,0 +1,29 @@
+namespace \foo
+namespace \foo\bar\baz
+use \foo
+use \foo\bar\baz
+
+----------------------------------------------------
+
+[
+	["keyword", "namespace"],
+	["package", [["punctuation", "\\"], "foo"]],
+	["keyword", "namespace"],
+	["package", [
+		["punctuation", "\\"], "foo",
+		["punctuation", "\\"], "bar",
+		["punctuation", "\\"], "baz"
+	]],
+	["keyword", "use"],
+	["package", [["punctuation", "\\"], "foo"]],
+	["keyword", "use"],
+	["package", [
+		["punctuation", "\\"], "foo",
+		["punctuation", "\\"], "bar",
+		["punctuation", "\\"], "baz"
+	]]
+]
+
+----------------------------------------------------
+
+Checks for packages.
\ No newline at end of file
diff --git a/tests/languages/php/property_feature.test b/tests/languages/php/property_feature.test
new file mode 100644
index 0000000..f779019
--- /dev/null
+++ b/tests/languages/php/property_feature.test
@@ -0,0 +1,19 @@
+$variable->property
+$foo->bar->baz
+
+----------------------------------------------------
+
+[
+	["variable", "$variable"],
+	["operator", "-"], ["operator", ">"],
+	["property", "property"],
+	["variable", "$foo"],
+	["operator", "-"], ["operator", ">"],
+	["property", "bar"],
+	["operator", "-"], ["operator", ">"],
+	["property", "baz"]
+]
+
+----------------------------------------------------
+
+Checks for properties.
\ No newline at end of file
diff --git a/tests/languages/php/shell-comment_feature.test b/tests/languages/php/shell-comment_feature.test
new file mode 100644
index 0000000..a1f077c
--- /dev/null
+++ b/tests/languages/php/shell-comment_feature.test
@@ -0,0 +1,13 @@
+#
+# foobar
+
+----------------------------------------------------
+
+[
+	["shell-comment", "#"],
+	["shell-comment", "# foobar"]
+]
+
+----------------------------------------------------
+
+Checks for shell-like comments.
\ No newline at end of file
diff --git a/tests/languages/php/variable_feature.test b/tests/languages/php/variable_feature.test
new file mode 100644
index 0000000..a59e67a
--- /dev/null
+++ b/tests/languages/php/variable_feature.test
@@ -0,0 +1,15 @@
+$f
+$foo
+$foobar_42
+
+----------------------------------------------------
+
+[
+	["variable", "$f"],
+	["variable", "$foo"],
+	["variable", "$foobar_42"]
+]
+
+----------------------------------------------------
+
+Checks for variables.
\ No newline at end of file