Index: third_party/WebKit/LayoutTests/storage/indexeddb/delete-range-count.html |
diff --git a/third_party/WebKit/LayoutTests/storage/indexeddb/delete-range-count.html b/third_party/WebKit/LayoutTests/storage/indexeddb/delete-range-count.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..80c8cf7134b3a83d6927eeb88e98388a05aa1e35 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/storage/indexeddb/delete-range-count.html |
@@ -0,0 +1,72 @@ |
+<!DOCTYPE html> |
dmurph
2016/05/20 18:41:15
We could probably just remove the 'lowerOpen' and
palakj1
2016/05/20 19:13:45
Done
|
+<title>IndexedDB: UpgradeNeeded Tests</title> |
+<script src="../../resources/testharness.js"></script> |
+<script src="../../resources/testharnessreport.js"></script> |
+<script> |
+ |
+function delete_count(test, description) { |
+ async_test(function(t) { |
+ var dbname = location.pathname + ' - ' + description; |
+ var deleteRequest = indexedDB.deleteDatabase(dbname); |
+ deleteRequest.onsuccess = t.step_func(function() { |
+ var openRequest = indexedDB.open(dbname); |
+ openRequest.onupgradeneeded = t.step_func(function(e) { |
+ var db = e.target.result; |
+ db.createObjectStore('store'); |
+ }); |
+ openRequest.onsuccess = t.step_func(function(e) { |
+ var db = e.target.result; |
+ var trans1 = db.transaction('store', 'readwrite'); |
+ var store = trans1.objectStore('store'); |
jsbell
2016/05/20 00:36:12
Just to simplify this a bit, I'd do the put()s in
palakj1
2016/05/20 19:13:46
Done
|
+ for (var i = 1; i <= 10; ++i) { |
+ store.put(i,i); |
+ } |
+ trans1.oncomplete = t.step_func(function() { |
+ var trans2 = db.transaction('store', 'readwrite'); |
+ store = trans2.objectStore('store'); |
+ deleteRequest1 = store.delete(IDBKeyRange.bound( |
+ test.first.lower, |
+ test.first.upper, |
+ test.first.lowerOpen, |
+ test.upperOpen)); |
jsbell
2016/05/20 00:36:12
test.first.upperOpen?
palakj1
2016/05/20 19:13:46
code segment removed
|
+ deleteRequest1.onsuccess = t.step_func(function(e) { |
+ var delete_count = e.target.result; |
+ assert_equals(delete_count, test.first.expected, 'Delete Count'); |
+ var trans3 = db.transaction('store', 'readwrite'); |
+ store = trans3.objectStore('store'); |
+ deleteRequest2 = store.delete(IDBKeyRange.bound( |
+ test.second.lower, |
+ test.second.upper, |
+ test.second.lowerOpen, |
+ test.second.upperOpen)); |
+ deleteRequest2.onsuccess = t.step_func(function(e) { |
+ delete_count = e.target.result; |
+ assert_equals(delete_count, test.second.expected, 'Some records already been deleted'); |
+ t.done(); |
+ }); |
+ }); |
+ }); |
+ }); |
+ openRequest.onerror = t.unreached_func('open failed'); |
+ }); |
+ }, description); |
+} |
+ |
+(function() { |
+ var tests = [ |
+ { first: { lower: 3, upper: 4, lowerOpen: false, upperOpen: false, expected: 2}, |
jsbell
2016/05/20 00:36:12
You can leave out falsy values like lowerOpen: fal
palakj1
2016/05/20 19:13:45
Done
|
+ second: { lower: 1, upper: 5, lowerOpen: false, upperOpen: false, expected: 3} |
+ }, |
+ { first: { lower: 3, upper: 8, lowerOpen: true, upperOpen: false, expected: 5}, |
+ second: { lower: 3, upper: 8, lowerOpen: true, upperOpen: false, expected: 0} |
+ }]; |
+ |
+ delete_count(tests[0], 'Delete Range for Overlapping Intervals'); |
+ delete_count(tests[1], 'Delete Range for Repeated Intervals'); |
+}()); |
+ |
+ |
+ |
+ |
+ |
+</script> |