[valadoc] Add tests for MarkupReader



commit a5be9be3c238dbaa80075c16d1ee535c187003fb
Author: Florian Brosch <flo brosch gmail com>
Date:   Mon Aug 13 05:14:21 2012 +0200

    Add tests for MarkupReader

 tests/Makefile.am                  |    1 +
 tests/libvaladoc/markupreader.vala |  207 ++++++++++++++++++++++++++++++++++++
 2 files changed, 208 insertions(+), 0 deletions(-)
---
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 2885334..8fd51c9 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -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
index 0000000..d38b4d4
--- /dev/null
+++ b/tests/libvaladoc/markupreader.vala
@@ -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 ();
+}
+



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]