blob: b777ce04e0311d81bfdcb6dd1e59acc178e42042 [file] [log] [blame]
<html>
<head>
<script src="../../http/tests/inspector/inspector-test.js"></script>
<script>
function test()
{
InspectorTest.runTestSuite([
function testMatchQuotes(next)
{
var testStrings = [
{"odd back slashes with text around":"tes\\\"t"},
{"escaped double quotes":"\"test\""},
{"escaped back slash before double quote":"test\\"},
{1:2},
{"":""},
{"nested brackets":{}},
{"nested brackets with double quotes":{"":""}},
{"etc":{"\\":"\""}},
{"etc":{"\\\\":"\\"}},
{"etc":{"\\\\\"":"\\\\\""}}
];
for (var i = 0; i < testStrings.length; ++i) {
var string = JSON.stringify(testStrings[i]);
InspectorTest.addResult("\nParsing " + string);
var tokenizer = new WebInspector.TextUtils.BalancedJSONTokenizer(InspectorTest.addResult.bind(InspectorTest));
tokenizer.write(string);
}
next();
},
function testMatchSequenceUsingOneShot(next)
{
var testData = [
{"one":"one"},
[{"one":"one"}, {"two":"two"}],
[{"one":"one"}, {"two":"two"}, {"three":"three"}],
];
for (var i = 0; i < testData.length; ++i) {
var string = JSON.stringify(testData[i]);
InspectorTest.addResult("\nParsing " + string);
var tokenizer = new WebInspector.TextUtils.BalancedJSONTokenizer(InspectorTest.addResult.bind(InspectorTest));
tokenizer.write(string);
}
next();
},
function testMatchSequenceUsingMultiple(next)
{
var testData = [
{"one":"one"},
[{"one":"one"}, {"two":"two"}],
[{"one":"one"}, {"two":"two"}, {"three":"three"}],
];
for (var i = 0; i < testData.length; ++i) {
var string = JSON.stringify(testData[i]);
InspectorTest.addResult("\nParsing " + string);
var tokenizer = new WebInspector.TextUtils.BalancedJSONTokenizer(InspectorTest.addResult.bind(InspectorTest), true);
tokenizer.write(string);
}
next();
},
function testIncrementalWrites(next)
{
var testStrings = [
{"odd back slashes with text around":"tes\\\"t"},
{"escaped double quotes":"\"test\""},
{"escaped back slash before double quote":"test\\"},
{1:2},
{"":""},
{"nested brackets":{}},
{"nested brackets with double quotes":{"":""}},
{"etc":{"\\":"\""}},
{"etc":{"\\\\":"\\"}},
{"etc":{"\\\\\"":"\\\\\""}}
];
var string = JSON.stringify(testStrings);
var tokenizer = new WebInspector.TextUtils.BalancedJSONTokenizer(InspectorTest.addResult.bind(InspectorTest), true);
InspectorTest.addResult("\nRunning at once:");
tokenizer.write(string);
for (var sample of [3, 15, 50]) {
tokenizer = new WebInspector.TextUtils.BalancedJSONTokenizer(InspectorTest.addResult.bind(InspectorTest), true);
InspectorTest.addResult("\nRunning by " + sample + ":");
for (var i = 0; i < string.length; i += sample)
tokenizer.write(string.substring(i, i + sample));
}
next();
}
]);
}
</script>
<body onload="runTest()">
Test WebInspector.TextUtils.BalancedJSONTokenizer.
</p>
</body>
</html>