Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / imported / web-platform-tests / IndexedDB / objectstore_keyorder.htm
1 <!DOCTYPE html>
2 <meta charset="utf-8">
3 <title>Verify key sort order in an object store is 'number &lt; Date &lt; DOMString' </title>
4 <link rel="author" title="Microsoft" href="http://www.microsoft.com">
5 <script src="../../../resources/testharness.js"></script>
6 <script src="../../../resources/testharnessreport.js"></script>
7 <script src="support.js"></script>
8
9 <script>
10     var db,
11       d = new Date(),
12       t = async_test(),
13       records = [ { key: d },
14                   { key: "test" },
15                   { key: 1 },
16                   { key: 2.55 }  ],
17       expectedKeyOrder = [ 1, 2.55, d.valueOf(), "test" ];
18
19     var open_rq = createdb(t);
20     open_rq.onupgradeneeded = function(e) {
21         db = e.target.result;
22         var objStore = db.createObjectStore("store", { keyPath: "key" });
23
24         for (var i = 0; i < records.length; i++)
25             objStore.add(records[i]);
26     };
27
28     open_rq.onsuccess = function(e) {
29         var actual_keys = [],
30           rq = db.transaction("store")
31                  .objectStore("store")
32                  .openCursor();
33
34         rq.onsuccess = t.step_func(function(e) {
35             var cursor = e.target.result;
36
37             if (cursor) {
38                 actual_keys.push(cursor.key.valueOf());
39                 cursor.continue();
40             }
41             else {
42                 assert_array_equals(actual_keys, expectedKeyOrder);
43                 t.done();
44             }
45         });
46     };
47 </script>
48
49 <div id="log"></div>