]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Add tests for MarkupReader
authorFlorian Brosch <flo.brosch@gmail.com>
Mon, 13 Aug 2012 03:14:21 +0000 (05:14 +0200)
committerFlorian Brosch <flo.brosch@gmail.com>
Mon, 13 Aug 2012 03:14:21 +0000 (05:14 +0200)
tests/Makefile.am
tests/libvaladoc/markupreader.vala [new file with mode: 0644]

index 288533443c62a6141018cf6b38ea811b95db24f4..8fd51c9a864728ae9a39495b6ce3600c25de891b 100644 (file)
@@ -16,6 +16,7 @@ TESTS_ENVIRONMENT = EXEEXT=$(EXEEXT) $(srcdir)/testrunner.sh
 
 TESTS = \
        libvaladoc/errorreporter.vala \
+       libvaladoc/markupreader.vala \
        libvaladoc/gtkdoc-scanner.vala \
        libvaladoc/parser/manyrule.vala \
        libvaladoc/parser/oneofrule.vala \
diff --git a/tests/libvaladoc/markupreader.vala b/tests/libvaladoc/markupreader.vala
new file mode 100644 (file)
index 0000000..d38b4d4
--- /dev/null
@@ -0,0 +1,207 @@
+/* markupreader.vala
+ *
+ * Copyright (C) 2012       Florian Brosch
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
+ *
+ * Author:
+ *     Florian Brosch <flo.brosch@gmail.com>
+ */
+
+using Valadoc;
+
+
+public static void positive_1 () {
+       var reporter = new ErrorReporter ();
+
+       string content = 
+"""<?xml version="1.0" ?>
+<root-element>
+       <subelement level="1" nested="true">my text</subelement>
+       <simpletag1 level="2" nested="false" />
+       <simpletag2 level="3"/>
+       <simpletag3/>
+</root-element>""";
+
+
+       var reader = new MarkupReader.from_string ("testfile", content, reporter);
+       assert (reader.filename == "testfile");
+
+       MarkupSourceLocation begin;
+       MarkupSourceLocation end;
+       MarkupTokenType token;
+
+
+       token = reader.read_token (out begin, out end);
+       token = reader.read_token (out begin, out end);
+
+
+       token = reader.read_token (out begin, out end);
+       assert (token == MarkupTokenType.START_ELEMENT);
+       assert (reader.name == "root-element");
+       assert (reader.content == null);
+       assert (reader.get_attributes ().size == 0);
+       assert (reporter.warnings == 0);
+       assert (reporter.errors == 0);
+       assert (begin.line == 2);
+       assert (end.line == 2);
+
+       token = reader.read_token (out begin, out end);
+       assert (token == MarkupTokenType.START_ELEMENT);
+       assert (reader.name == "subelement");
+       assert (reader.content == null);
+       assert (reader.get_attributes ().size == 2);
+       assert (reader.get_attribute ("nested") == "true");
+       assert (reader.get_attribute ("level") == "1");
+       assert (reporter.warnings == 0);
+       assert (reporter.errors == 0);
+       assert (begin.line == 3);
+       assert (end.line == 3);
+
+       token = reader.read_token (out begin, out end);
+       assert (token == MarkupTokenType.TEXT);
+       assert (reader.name == null);
+       assert (reader.content == "my text");
+       assert (reader.get_attributes ().size == 0);
+       assert (reporter.warnings == 0);
+       assert (reporter.errors == 0);
+       assert (begin.line == 3);
+       assert (end.line == 3);
+
+       token = reader.read_token (out begin, out end);
+       assert (token == MarkupTokenType.END_ELEMENT);
+       assert (reader.name == "subelement");
+       assert (reader.content == null);
+       assert (reader.get_attributes ().size == 0);
+       assert (reporter.warnings == 0);
+       assert (reporter.errors == 0);
+       assert (begin.line == 3);
+       assert (end.line == 3);
+
+       token = reader.read_token (out begin, out end);
+       assert (token == MarkupTokenType.START_ELEMENT);
+       assert (reader.name == "simpletag1");
+       assert (reader.content == null);
+       assert (reader.get_attributes ().size == 2);
+       assert (reader.get_attribute ("nested") == "false");
+       assert (reader.get_attribute ("level") == "2");
+       assert (reporter.warnings == 0);
+       assert (reporter.errors == 0);
+       assert (begin.line == 4);
+       assert (end.line == 4);
+
+       token = reader.read_token (out begin, out end);
+       assert (token == MarkupTokenType.END_ELEMENT);
+       assert (reader.name == "simpletag1");
+       assert (reader.content == null);
+       assert (reader.get_attributes ().size == 0);
+       assert (reporter.warnings == 0);
+       assert (reporter.errors == 0);
+       assert (begin.line == 4);
+       assert (end.line == 4);
+
+       token = reader.read_token (out begin, out end);
+       assert (token == MarkupTokenType.START_ELEMENT);
+       assert (reader.name == "simpletag2");
+       assert (reader.content == null);
+       assert (reader.get_attributes ().size == 1);
+       assert (reader.get_attribute ("level") == "3");
+       assert (reporter.warnings == 0);
+       assert (reporter.errors == 0);
+       assert (begin.line == 5);
+       assert (end.line == 5);
+
+       token = reader.read_token (out begin, out end);
+       assert (token == MarkupTokenType.END_ELEMENT);
+       assert (reader.name == "simpletag2");
+       assert (reader.content == null);
+       assert (reader.get_attributes ().size == 0);
+       assert (reporter.warnings == 0);
+       assert (reporter.errors == 0);
+       assert (begin.line == 5);
+       assert (end.line == 5);
+
+       token = reader.read_token (out begin, out end);
+       assert (token == MarkupTokenType.START_ELEMENT);
+       assert (reader.name == "simpletag3");
+       assert (reader.content == null);
+       assert (reader.get_attributes ().size == 0);
+       assert (reporter.warnings == 0);
+       assert (reporter.errors == 0);
+       assert (begin.line == 6);
+       assert (end.line == 6);
+
+       token = reader.read_token (out begin, out end);
+       assert (token == MarkupTokenType.END_ELEMENT);
+       assert (reader.name == "simpletag3");
+       assert (reader.content == null);
+       assert (reader.get_attributes ().size == 0);
+       assert (reporter.warnings == 0);
+       assert (reporter.errors == 0);
+       assert (begin.line == 6);
+       assert (end.line == 6);
+
+       token = reader.read_token (out begin, out end);
+       assert (token == MarkupTokenType.END_ELEMENT);
+       assert (reader.name == "root-element");
+       assert (reader.content == null);
+       assert (reader.get_attributes ().size == 0);
+       assert (reporter.warnings == 0);
+       assert (reporter.errors == 0);
+       assert (begin.line == 7);
+       assert (end.line == 7);
+
+       token = reader.read_token (out begin, out end);
+       assert (token == MarkupTokenType.EOF);
+       assert (reader.name == null);
+       assert (reader.content == null);
+       assert (reader.get_attributes ().size == 0);
+       assert (reporter.warnings == 0);
+       assert (reporter.errors == 0);
+       assert (begin.line == 7);
+       assert (end.line == 7);
+}
+
+
+public static void positive_2 () {
+       var reporter = new ErrorReporter ();
+
+       string content = "AA BB &amp; &quot;&apos; &lt; &gt; &percnt;";
+
+       var reader = new MarkupReader.from_string ("testfile", content, reporter);
+       assert (reader.filename == "testfile");
+
+       MarkupSourceLocation begin;
+       MarkupSourceLocation end;
+       MarkupTokenType token;
+
+       token = reader.read_token (out begin, out end);
+       assert (token == MarkupTokenType.TEXT);
+       assert (reader.content == "AA BB & \"' < > >");
+       assert (reader.name == null);
+       assert (reader.get_attributes ().size == 0);
+       assert (reporter.warnings == 0);
+       assert (reporter.errors == 0);
+       assert (begin.line == 1);
+       assert (end.line == 1);
+
+}
+
+
+public static void main () {
+       positive_1 ();
+       positive_2 ();
+}
+