| <!DOCTYPE html> | |
| <meta charset="utf-8"> | |
| <title>IDBObjectStore.put() - put where an index has unique:true specified </title> | |
| <link rel="author" title="Microsoft" href="http://www.microsoft.com"> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script src="support.js"></script> | |
| <script> | |
| var db, | |
| record = { key: 1, property: "data" }; | |
| var open_rq = createdb(async_test()); | |
| open_rq.onupgradeneeded = function(e) { | |
| db = e.target.result; | |
| var objStore = db.createObjectStore("store", { autoIncrement: true }); | |
| objStore.createIndex("i1", "property", { unique: true }); | |
| objStore.put(record); | |
| var rq = objStore.put(record); | |
| rq.onsuccess = fail(this, "success on putting duplicate indexed record") | |
| rq.onerror = this.step_func(function(e) { | |
| assert_equals(rq.error.name, "ConstraintError"); | |
| assert_equals(e.target.error.name, "ConstraintError"); | |
| assert_equals(e.type, "error"); | |
| e.preventDefault(); | |
| e.stopPropagation(); | |
| }); | |
| }; | |
| // Defer done, giving a spurious rq.onsuccess a chance to run | |
| open_rq.onsuccess = function(e) { | |
| this.done(); | |
| } | |
| </script> | |
| <div id="log"></div> |