| Index: LayoutTests/imported/web-platform-tests/IndexedDB/string-list-ordering.htm
|
| diff --git a/LayoutTests/imported/web-platform-tests/IndexedDB/string-list-ordering.htm b/LayoutTests/imported/web-platform-tests/IndexedDB/string-list-ordering.htm
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..326d115961c07dd0e35c3e29cff07d95ec07a4e8
|
| --- /dev/null
|
| +++ b/LayoutTests/imported/web-platform-tests/IndexedDB/string-list-ordering.htm
|
| @@ -0,0 +1,85 @@
|
| +<!--
|
| +Test converted from WebKit:
|
| +http://trac.webkit.org/browser/trunk/LayoutTests/storage/indexeddb/resources/list-ordering.js
|
| + -->
|
| +
|
| +<!DOCTYPE html>
|
| +<!-- Submitted from TestTWF Paris -->
|
| +<meta charset=utf-8>
|
| +<title>Test string list ordering in IndexedDB</title>
|
| +<link rel=help href="http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBDatabase-objectStoreNames">
|
| +<link rel=assert title="The list must be sorted in ascending order using the algorithm defined by step 4 of section 11.8.5, The Abstract Relational Comparison Algorithm of the ECMAScript Language Specification [ECMA-262].">
|
| +<link rel=author href="mailto:romain.huet@gmail.com" title="Romain Huet">
|
| +
|
| +<script src=../../../resources/testharness.js></script>
|
| +<script src=../../../resources/testharnessreport.js></script>
|
| +<script src=support.js></script>
|
| +
|
| +<script>
|
| +
|
| + var expectedOrder = [
|
| + "",
|
| + "\x00", // 'NULL' (U+0000)
|
| + "0",
|
| + "1",
|
| + "A",
|
| + "B",
|
| + "a",
|
| + "b",
|
| + "\x7F", // 'DELETE' (U+007F)
|
| + "\xC0", // 'LATIN CAPITAL LETTER A WITH GRAVE' (U+00C0)
|
| + "\xC1", // 'LATIN CAPITAL LETTER A WITH ACUTE' (U+00C1)
|
| + "\xE0", // 'LATIN SMALL LETTER A WITH GRAVE' (U+00E0)
|
| + "\xE1", // 'LATIN SMALL LETTER A WITH ACUTE' (U+00E1)
|
| + "\xFF", // 'LATIN SMALL LETTER Y WITH DIAERESIS' (U+00FF)
|
| + "\u0100", // 'LATIN CAPITAL LETTER A WITH MACRON' (U+0100)
|
| + "\u1000", // 'MYANMAR LETTER KA' (U+1000)
|
| + "\uD834\uDD1E", // 'MUSICAL SYMBOL G-CLEF' (U+1D11E), UTF-16 surrogate pairs
|
| + "\uFFFD" // 'REPLACEMENT CHARACTER' (U+FFFD)
|
| + ];
|
| +
|
| + var i, tmp, permutedOrder = expectedOrder.slice();
|
| + permutedOrder.reverse();
|
| + for (i = 0; i < permutedOrder.length - 2; i += 2) {
|
| + tmp = permutedOrder[i];
|
| + permutedOrder[i] = permutedOrder[i + 1];
|
| + permutedOrder[i + 1] = tmp;
|
| + }
|
| +
|
| + var objStore, db;
|
| + var t = async_test();
|
| +
|
| + // Check that the expected order is the canonical JS sort order.
|
| + var sortedOrder = expectedOrder.slice();
|
| + sortedOrder.sort();
|
| + assert_array_equals(sortedOrder, expectedOrder);
|
| +
|
| + var request = createdb(t);
|
| +
|
| + request.onupgradeneeded = function(e) {
|
| + db = e.target.result;
|
| +
|
| + // Object stores.
|
| + for (var i = 0; i < permutedOrder.length; i++) {
|
| + objStore = db.createObjectStore(permutedOrder[i]);
|
| + }
|
| + assert_array_equals(db.objectStoreNames, expectedOrder);
|
| +
|
| + // Indexes.
|
| + for (var i = 0; i < permutedOrder.length; i++) {
|
| + objStore.createIndex(permutedOrder[i], "keyPath");
|
| + }
|
| + assert_array_equals(objStore.indexNames, expectedOrder);
|
| + };
|
| +
|
| + request.onsuccess = function(e) {
|
| + // Object stores.
|
| + assert_array_equals(db.objectStoreNames, expectedOrder);
|
| + // Indexes.
|
| + assert_array_equals(objStore.indexNames, expectedOrder);
|
| + t.done();
|
| + };
|
| +
|
| +</script>
|
| +
|
| +<div id=log></div>
|
|
|