summaryrefslogtreecommitdiff
path: root/api/src/test/scala/twist/ParserTests.scala
diff options
context:
space:
mode:
Diffstat (limited to 'api/src/test/scala/twist/ParserTests.scala')
-rw-r--r--api/src/test/scala/twist/ParserTests.scala50
1 files changed, 50 insertions, 0 deletions
diff --git a/api/src/test/scala/twist/ParserTests.scala b/api/src/test/scala/twist/ParserTests.scala
new file mode 100644
index 0000000..721fb29
--- /dev/null
+++ b/api/src/test/scala/twist/ParserTests.scala
@@ -0,0 +1,50 @@
+package twist
+import utest._
+import twist.stages.{TwistNodes, Parser}
+
+/**
+ * Created by haoyi on 8/2/14.
+ */
+object ParserTests extends TestSuite{
+ val WN = TwistNodes
+ val WP = Parser
+ def check[T](s: String, f: Parser => T, expected: Option[T]){
+ val parsed = WP.parse(s, f).toOption
+ assert(parsed == expected)
+ }
+ val tests = TestSuite{
+// 'chainedExpressions {
+// check("", _.expression(), None)
+// check("asd", _.expression(), None)
+// check("@asd", _.expression(), Some(
+// WN.Display(WN.ScalaExp(Seq(WN.Simple("asd"))))
+// ))
+//
+// check("@asd{", _.expression(), None)
+// check("@asd(", _.expression(), None)
+// check("@asd()", _.expression(), Some(
+// WN.Display(WN.ScalaExp(Seq(WN.Simple("asd()"))))
+// ))
+// check("@asd(ggnore)", _.expression(), Some(
+// WN.Display(WN.ScalaExp(Seq(WN.Simple("asd(ggnore)"))))
+// ))
+// check("@asd.wtf(ggnore).bbq.lol", _.expression(), Some(
+// WN.Display(WN.ScalaExp(Seq(WN.Simple("asd"), WN.Simple(".wtf(ggnore).bbq.lol"))))
+// ))
+// check("@asd{}", _.expression(), Some(
+// WN.Display(WN.ScalaExp(Seq(WN.Simple("asd"), WN.Block("", None, Seq()))))
+// ))
+// check("@asd{lol}", _.expression(), Some(
+// WN.Display(WN.ScalaExp(Seq(WN.Simple("asd"), WN.Block("", None, Seq(WN.Plain("lol"))))))
+// ))
+// check("@asd{lol}.wtf('l'){gg}", _.expression(), Some(
+// WN.Display(WN.ScalaExp(Seq(
+// WN.Simple("asd"),
+// WN.Block("", None, Seq(WN.Plain("lol"))),
+// WN.Simple(".wtf('l')"),
+// WN.Block("", None, Seq(WN.Plain("gg")))
+// )))
+// ))
+// }
+ }
+}