blob: 701e692c2eee8fe80feb65f40a129a7baba0a171 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../../../http/tests/inspector/resources/inspector-test.js"></script>
<script src="resources/objectStore-utilities.js"></script>
<script>
function test()
{
let suite = InspectorTest.ObjectStore.createSuite("WI.ObjectStore.prototype.put");
function testPut(name, {options, tests}) {
InspectorTest.ObjectStore.wrapTest(name, async function() {
InspectorTest.ObjectStore.createObjectStore(options);
for (let {value, expected} of tests)
await InspectorTest.ObjectStore.put(value, expected);
});
}
InspectorTest.ObjectStore.wrapTest("WI.ObjectStore.prototype.put.NoParameters", async function() {
let objectStore = InspectorTest.ObjectStore.createObjectStore();
await InspectorTest.expectException(async function() {
await objectStore.put();
await objectStore.put(InspectorTest.ObjectStore.basicObject2);
});
});
testPut("WI.ObjectStore.prototype.put.Boolean", {
options: {autoIncrement: true},
tests: [
{value: false, expected: 1},
{value: true, expected: 2},
],
});
testPut("WI.ObjectStore.prototype.put.Number", {
options: {autoIncrement: true},
tests: [
{value: 11, expected: 1},
{value: 22, expected: 2},
],
});
testPut("WI.ObjectStore.prototype.put.String", {
options: {autoIncrement: true},
tests: [
{value: "foo", expected: 1},
{value: "bar", expected: 2},
],
});
testPut("WI.ObjectStore.prototype.put.Array", {
options: {autoIncrement: true},
tests: [
{value: [11], expected: 1},
{value: [22], expected: 2},
],
});
testPut("WI.ObjectStore.prototype.put.Null", {
options: {autoIncrement: true},
tests: [
{value: null, expected: 1},
],
});
InspectorTest.ObjectStore.wrapTest("WI.ObjectStore.prototype.put.Object.WithoutKeyPathOrAutoIncrement", async function() {
let objectStore = InspectorTest.ObjectStore.createObjectStore();
await InspectorTest.expectException(async function() {
await objectStore.put(InspectorTest.ObjectStore.basicObject1);
await objectStore.put(InspectorTest.ObjectStore.basicObject2);
});
});
InspectorTest.ObjectStore.wrapTest("WI.ObjectStore.prototype.put.Object.KeyPathMissingOnObjectWithoutAutoIncrement", async function() {
const options = {
keyPath: "KeyPathMissingOnObjectWithoutAutoIncrement",
};
let objectStore = InspectorTest.ObjectStore.createObjectStore(options);
await InspectorTest.expectException(async function() {
await objectStore.put(InspectorTest.ObjectStore.basicObject1);
await objectStore.put(InspectorTest.ObjectStore.basicObject2);
});
});
testPut("WI.ObjectStore.prototype.put.Object.KeyPathSetOnObjectWithoutAutoIncrement", {
options: {keyPath: "KeyPathSetOnObjectWithoutAutoIncrement"},
tests: [
{value: {KeyPathSetOnObjectWithoutAutoIncrement: 42, ...InspectorTest.ObjectStore.basicObject1}, expected: 42},
{value: {KeyPathSetOnObjectWithoutAutoIncrement: 99, ...InspectorTest.ObjectStore.basicObject2}, expected: 99},
],
});
testPut("WI.ObjectStore.prototype.put.Object.KeyPathMissingOnObjectWithAutoIncrement", {
options: {keyPath: "KeyPathMissingOnObjectWithAutoIncrement", autoIncrement: true},
tests: [
{value: InspectorTest.ObjectStore.basicObject1, expected: 1},
{value: InspectorTest.ObjectStore.basicObject2, expected: 2},
],
});
testPut("WI.ObjectStore.prototype.put.Object.KeyPathSetOnObjectWithAutoIncrement", {
options: {keyPath: "KeyPathSetOnObjectWithAutoIncrement", autoIncrement: true},
tests: [
{value: {KeyPathSetOnObjectWithAutoIncrement: 42, ...InspectorTest.ObjectStore.basicObject1}, expected: 42},
{value: {KeyPathSetOnObjectWithAutoIncrement: 99, ...InspectorTest.ObjectStore.basicObject2}, expected: 99},
],
});
testPut("WI.ObjectStore.prototype.put.Object.AutoIncrementWithoutKeyPath", {
options: {autoIncrement: true},
tests: [
{value: InspectorTest.ObjectStore.basicObject1, expected: 1},
{value: InspectorTest.ObjectStore.basicObject2, expected: 2},
],
});
testPut("WI.ObjectStore.prototype.put.Object.KeyPathSetOnObjectWithoutAutoIncrement.Sub", {
options: {keyPath: "KeyPathSetOnObjectWithoutAutoIncrement.Sub"},
tests: [
{value: {KeyPathSetOnObjectWithoutAutoIncrement: {Sub: 42}, ...InspectorTest.ObjectStore.basicObject1}, expected: 42},
{value: {KeyPathSetOnObjectWithoutAutoIncrement: {Sub: 99}, ...InspectorTest.ObjectStore.basicObject2}, expected: 99},
],
});
testPut("WI.ObjectStore.prototype.put.Object.KeyPathMissingOnObjectWithAutoIncrement.Sub", {
options: {keyPath: "KeyPathMissingOnObjectWithAutoIncrement.Sub", autoIncrement: true},
tests: [
{value: InspectorTest.ObjectStore.basicObject1, expected: 1},
{value: InspectorTest.ObjectStore.basicObject2, expected: 2},
],
});
testPut("WI.ObjectStore.prototype.put.Object.KeyPathSetOnObjectWithAutoIncrement.Sub", {
options: {keyPath: "KeyPathSetOnObjectWithAutoIncrement.Sub", autoIncrement: true},
tests: [
{value: {KeyPathSetOnObjectWithAutoIncrement: {Sub: 42}, ...InspectorTest.ObjectStore.basicObject1}, expected: 42},
{value: {KeyPathSetOnObjectWithAutoIncrement: {Sub: 99}, ...InspectorTest.ObjectStore.basicObject2}, expected: 99},
],
});
suite.runTestCasesAndFinish();
}
</script>
</head>
<body onload="runTest()">
<p>Tests WI.ObjectStore.prototype.put.</p>
</body>
</html>