Security update for Core, with self-updated composer
[yaffs-website] / vendor / nikic / php-parser / test / code / parser / stmt / namespace / outsideStmtInvalid.test
diff --git a/vendor/nikic/php-parser/test/code/parser/stmt/namespace/outsideStmtInvalid.test b/vendor/nikic/php-parser/test/code/parser/stmt/namespace/outsideStmtInvalid.test
new file mode 100644 (file)
index 0000000..737112d
--- /dev/null
@@ -0,0 +1,105 @@
+There (mostly) can't be statements outside of namespaces
+-----
+<?php
+echo 1;
+echo 2;
+namespace A;
+-----
+Namespace declaration statement has to be the very first statement in the script on line 4
+array(
+    0: Stmt_Echo(
+        exprs: array(
+            0: Scalar_LNumber(
+                value: 1
+            )
+        )
+    )
+    1: Stmt_Echo(
+        exprs: array(
+            0: Scalar_LNumber(
+                value: 2
+            )
+        )
+    )
+    2: Stmt_Namespace(
+        name: Name(
+            parts: array(
+                0: A
+            )
+        )
+        stmts: array(
+        )
+    )
+)
+-----
+<?php
+namespace A {}
+echo 1;
+-----
+No code may exist outside of namespace {} from 3:1 to 3:7
+array(
+    0: Stmt_Namespace(
+        name: Name(
+            parts: array(
+                0: A
+            )
+        )
+        stmts: array(
+        )
+    )
+    1: Stmt_Echo(
+        exprs: array(
+            0: Scalar_LNumber(
+                value: 1
+            )
+        )
+    )
+)
+-----
+<?php
+namespace A {}
+declare(ticks=1);
+foo();
+namespace B {}
+-----
+No code may exist outside of namespace {} from 3:1 to 3:17
+array(
+    0: Stmt_Namespace(
+        name: Name(
+            parts: array(
+                0: A
+            )
+        )
+        stmts: array(
+        )
+    )
+    1: Stmt_Declare(
+        declares: array(
+            0: Stmt_DeclareDeclare(
+                key: ticks
+                value: Scalar_LNumber(
+                    value: 1
+                )
+            )
+        )
+        stmts: null
+    )
+    2: Expr_FuncCall(
+        name: Name(
+            parts: array(
+                0: foo
+            )
+        )
+        args: array(
+        )
+    )
+    3: Stmt_Namespace(
+        name: Name(
+            parts: array(
+                0: B
+            )
+        )
+        stmts: array(
+        )
+    )
+)
\ No newline at end of file