summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/IndexedDB/string-list-ordering.htm
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /testing/web-platform/tests/IndexedDB/string-list-ordering.htm
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'testing/web-platform/tests/IndexedDB/string-list-ordering.htm')
-rw-r--r--testing/web-platform/tests/IndexedDB/string-list-ordering.htm85
1 files changed, 85 insertions, 0 deletions
diff --git a/testing/web-platform/tests/IndexedDB/string-list-ordering.htm b/testing/web-platform/tests/IndexedDB/string-list-ordering.htm
new file mode 100644
index 000000000..cc905e56e
--- /dev/null
+++ b/testing/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>