libvaladoc: Actually resolve "percnt;" to '%'
[vala-gnome.git] / valadoc / tests / libvaladoc / markupreader.vala
blob3681b7e99155d0073f021e02bbaf5d1b0b641315
1 /* markupreader.vala
3 * Copyright (C) 2012 Florian Brosch
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 * Author:
20 * Florian Brosch <flo.brosch@gmail.com>
23 using Valadoc;
26 public static void positive_1 () {
27 var reporter = new ErrorReporter ();
29 string content =
30 """<?xml version="1.0" ?>
31 <root-element>
32 <subelement level="1" nested="true">my text</subelement>
33 <simpletag1 level="2" nested="false" />
34 <simpletag2 level="3"/>
35 <simpletag3/>
36 </root-element>""";
39 var reader = new MarkupReader.from_string ("testfile", content, reporter);
40 assert (reader.filename == "testfile");
42 MarkupSourceLocation begin;
43 MarkupSourceLocation end;
44 MarkupTokenType token;
47 token = reader.read_token (out begin, out end);
48 token = reader.read_token (out begin, out end);
51 token = reader.read_token (out begin, out end);
52 assert (token == MarkupTokenType.START_ELEMENT);
53 assert (reader.name == "root-element");
54 assert (reader.content == null);
55 assert (reader.get_attributes ().size == 0);
56 assert (reporter.warnings == 0);
57 assert (reporter.errors == 0);
58 assert (begin.line == 2);
59 assert (end.line == 2);
61 token = reader.read_token (out begin, out end);
62 assert (token == MarkupTokenType.START_ELEMENT);
63 assert (reader.name == "subelement");
64 assert (reader.content == null);
65 assert (reader.get_attributes ().size == 2);
66 assert (reader.get_attribute ("nested") == "true");
67 assert (reader.get_attribute ("level") == "1");
68 assert (reporter.warnings == 0);
69 assert (reporter.errors == 0);
70 assert (begin.line == 3);
71 assert (end.line == 3);
73 token = reader.read_token (out begin, out end);
74 assert (token == MarkupTokenType.TEXT);
75 assert (reader.name == null);
76 assert (reader.content == "my text");
77 assert (reader.get_attributes ().size == 0);
78 assert (reporter.warnings == 0);
79 assert (reporter.errors == 0);
80 assert (begin.line == 3);
81 assert (end.line == 3);
83 token = reader.read_token (out begin, out end);
84 assert (token == MarkupTokenType.END_ELEMENT);
85 assert (reader.name == "subelement");
86 assert (reader.content == null);
87 assert (reader.get_attributes ().size == 0);
88 assert (reporter.warnings == 0);
89 assert (reporter.errors == 0);
90 assert (begin.line == 3);
91 assert (end.line == 3);
93 token = reader.read_token (out begin, out end);
94 assert (token == MarkupTokenType.START_ELEMENT);
95 assert (reader.name == "simpletag1");
96 assert (reader.content == null);
97 assert (reader.get_attributes ().size == 2);
98 assert (reader.get_attribute ("nested") == "false");
99 assert (reader.get_attribute ("level") == "2");
100 assert (reporter.warnings == 0);
101 assert (reporter.errors == 0);
102 assert (begin.line == 4);
103 assert (end.line == 4);
105 token = reader.read_token (out begin, out end);
106 assert (token == MarkupTokenType.END_ELEMENT);
107 assert (reader.name == "simpletag1");
108 assert (reader.content == null);
109 assert (reader.get_attributes ().size == 0);
110 assert (reporter.warnings == 0);
111 assert (reporter.errors == 0);
112 assert (begin.line == 4);
113 assert (end.line == 4);
115 token = reader.read_token (out begin, out end);
116 assert (token == MarkupTokenType.START_ELEMENT);
117 assert (reader.name == "simpletag2");
118 assert (reader.content == null);
119 assert (reader.get_attributes ().size == 1);
120 assert (reader.get_attribute ("level") == "3");
121 assert (reporter.warnings == 0);
122 assert (reporter.errors == 0);
123 assert (begin.line == 5);
124 assert (end.line == 5);
126 token = reader.read_token (out begin, out end);
127 assert (token == MarkupTokenType.END_ELEMENT);
128 assert (reader.name == "simpletag2");
129 assert (reader.content == null);
130 assert (reader.get_attributes ().size == 0);
131 assert (reporter.warnings == 0);
132 assert (reporter.errors == 0);
133 assert (begin.line == 5);
134 assert (end.line == 5);
136 token = reader.read_token (out begin, out end);
137 assert (token == MarkupTokenType.START_ELEMENT);
138 assert (reader.name == "simpletag3");
139 assert (reader.content == null);
140 assert (reader.get_attributes ().size == 0);
141 assert (reporter.warnings == 0);
142 assert (reporter.errors == 0);
143 assert (begin.line == 6);
144 assert (end.line == 6);
146 token = reader.read_token (out begin, out end);
147 assert (token == MarkupTokenType.END_ELEMENT);
148 assert (reader.name == "simpletag3");
149 assert (reader.content == null);
150 assert (reader.get_attributes ().size == 0);
151 assert (reporter.warnings == 0);
152 assert (reporter.errors == 0);
153 assert (begin.line == 6);
154 assert (end.line == 6);
156 token = reader.read_token (out begin, out end);
157 assert (token == MarkupTokenType.END_ELEMENT);
158 assert (reader.name == "root-element");
159 assert (reader.content == null);
160 assert (reader.get_attributes ().size == 0);
161 assert (reporter.warnings == 0);
162 assert (reporter.errors == 0);
163 assert (begin.line == 7);
164 assert (end.line == 7);
166 token = reader.read_token (out begin, out end);
167 assert (token == MarkupTokenType.EOF);
168 assert (reader.name == null);
169 assert (reader.content == null);
170 assert (reader.get_attributes ().size == 0);
171 assert (reporter.warnings == 0);
172 assert (reporter.errors == 0);
173 assert (begin.line == 7);
174 assert (end.line == 7);
178 public static void positive_2 () {
179 var reporter = new ErrorReporter ();
181 string content = "AA BB &amp; &quot;&apos; &lt; &gt; &percnt;";
183 var reader = new MarkupReader.from_string ("testfile", content, reporter);
184 assert (reader.filename == "testfile");
186 MarkupSourceLocation begin;
187 MarkupSourceLocation end;
188 MarkupTokenType token;
190 token = reader.read_token (out begin, out end);
191 assert (token == MarkupTokenType.TEXT);
192 assert (reader.content == "AA BB & \"' < > %");
193 assert (reader.name == null);
194 assert (reader.get_attributes ().size == 0);
195 assert (reporter.warnings == 0);
196 assert (reporter.errors == 0);
197 assert (begin.line == 1);
198 assert (end.line == 1);
203 public static void main () {
204 positive_1 ();
205 positive_2 ();