Changeset 56333 in webkit for trunk/JavaScriptCore/qt/tests
- Timestamp:
- Mar 22, 2010, 7:37:53 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/qt/tests/qscriptengine/tst_qscriptengine.cpp
r56320 r56333 20 20 #include "qscriptengine.h" 21 21 #include "qscriptprogram.h" 22 #include "qscriptsyntaxcheckresult.h" 22 23 #include "qscriptvalue.h" 23 24 #include <QtTest/qtest.h> … … 40 41 void undefinedValue(); 41 42 void evaluateProgram(); 43 void checkSyntax_data(); 44 void checkSyntax(); 42 45 }; 43 46 … … 176 179 } 177 180 181 void tst_QScriptEngine::checkSyntax_data() 182 { 183 QTest::addColumn<QString>("code"); 184 QTest::addColumn<int>("expectedState"); 185 QTest::addColumn<int>("errorLineNumber"); 186 QTest::addColumn<int>("errorColumnNumber"); 187 QTest::addColumn<QString>("errorMessage"); 188 189 QTest::newRow("0") 190 << QString("0") << int(QScriptSyntaxCheckResult::Valid) 191 << -1 << -1 << ""; 192 QTest::newRow("if (") 193 << QString("if (\n") << int(QScriptSyntaxCheckResult::Intermediate) 194 << 1 << 4 << ""; 195 QTest::newRow("if else") 196 << QString("\nif else") << int(QScriptSyntaxCheckResult::Error) 197 << 2 << 4 << "SyntaxError: Parse error"; 198 QTest::newRow("{if}") 199 << QString("{\n{\nif\n}\n") << int(QScriptSyntaxCheckResult::Error) 200 << 4 << 1 << "SyntaxError: Parse error"; 201 QTest::newRow("foo[") 202 << QString("foo[") << int(QScriptSyntaxCheckResult::Error) 203 << 1 << 4 << "SyntaxError: Parse error"; 204 QTest::newRow("foo['bar']") 205 << QString("foo['bar']") << int(QScriptSyntaxCheckResult::Valid) 206 << -1 << -1 << ""; 207 208 QTest::newRow("/*") 209 << QString("/*") << int(QScriptSyntaxCheckResult::Intermediate) 210 << 1 << 1 << "Unclosed comment at end of file"; 211 QTest::newRow("/*\nMy comment") 212 << QString("/*\nMy comment") << int(QScriptSyntaxCheckResult::Intermediate) 213 << 1 << 1 << "Unclosed comment at end of file"; 214 QTest::newRow("/*\nMy comment */\nfoo = 10") 215 << QString("/*\nMy comment */\nfoo = 10") << int(QScriptSyntaxCheckResult::Valid) 216 << -1 << -1 << ""; 217 QTest::newRow("foo = 10 /*") 218 << QString("foo = 10 /*") << int(QScriptSyntaxCheckResult::Intermediate) 219 << -1 << -1 << ""; 220 QTest::newRow("foo = 10; /*") 221 << QString("foo = 10; /*") << int(QScriptSyntaxCheckResult::Intermediate) 222 << 1 << 11 << "Expected `end of file'"; 223 QTest::newRow("foo = 10 /* My comment */") 224 << QString("foo = 10 /* My comment */") << int(QScriptSyntaxCheckResult::Valid) 225 << -1 << -1 << ""; 226 227 QTest::newRow("/=/") 228 << QString("/=/") << int(QScriptSyntaxCheckResult::Valid) << -1 << -1 << ""; 229 QTest::newRow("/=/g") 230 << QString("/=/g") << int(QScriptSyntaxCheckResult::Valid) << -1 << -1 << ""; 231 QTest::newRow("/a/") 232 << QString("/a/") << int(QScriptSyntaxCheckResult::Valid) << -1 << -1 << ""; 233 QTest::newRow("/a/g") 234 << QString("/a/g") << int(QScriptSyntaxCheckResult::Valid) << -1 << -1 << ""; 235 } 236 237 void tst_QScriptEngine::checkSyntax() 238 { 239 QFETCH(QString, code); 240 QFETCH(int, expectedState); 241 QFETCH(int, errorLineNumber); 242 QFETCH(int, errorColumnNumber); 243 QFETCH(QString, errorMessage); 244 245 QScriptSyntaxCheckResult result = QScriptEngine::checkSyntax(code); 246 247 // assignment 248 { 249 QScriptSyntaxCheckResult copy = result; 250 QCOMPARE(copy.state(), result.state()); 251 QCOMPARE(copy.errorLineNumber(), result.errorLineNumber()); 252 QCOMPARE(copy.errorColumnNumber(), result.errorColumnNumber()); 253 QCOMPARE(copy.errorMessage(), result.errorMessage()); 254 } 255 { 256 QScriptSyntaxCheckResult copy(result); 257 QCOMPARE(copy.state(), result.state()); 258 QCOMPARE(copy.errorLineNumber(), result.errorLineNumber()); 259 QCOMPARE(copy.errorColumnNumber(), result.errorColumnNumber()); 260 QCOMPARE(copy.errorMessage(), result.errorMessage()); 261 } 262 263 if (expectedState == QScriptSyntaxCheckResult::Intermediate) 264 QEXPECT_FAIL("", "QScriptSyntaxCheckResult::state() doesn't return the Intermediate state", Abort); 265 QCOMPARE(result.state(), QScriptSyntaxCheckResult::State(expectedState)); 266 QCOMPARE(result.errorLineNumber(), errorLineNumber); 267 if (expectedState != QScriptSyntaxCheckResult::Valid && errorColumnNumber != 1) 268 QEXPECT_FAIL("", "QScriptSyntaxCheckResult::errorColumnNumber() doesn't return correct value", Continue); 269 QCOMPARE(result.errorColumnNumber(), errorColumnNumber); 270 QCOMPARE(result.errorMessage(), errorMessage); 271 } 272 273 178 274 QTEST_MAIN(tst_QScriptEngine) 179 275 #include "tst_qscriptengine.moc"
Note:
See TracChangeset
for help on using the changeset viewer.