| OLD | NEW | 
| (Empty) |  | 
 |    1 <!doctype html> | 
 |    2 <meta charset=utf-8> | 
 |    3 <title>IndexedDB IDL tests</title> | 
 |    4 <script src=../../../resources/testharness.js></script> | 
 |    5 <script src=../../../resources/testharnessreport.js></script> | 
 |    6 <script src=/resources/WebIDLParser.js></script> | 
 |    7 <script src=/resources/idlharness.js></script> | 
 |    8 <script src=support.js></script> | 
 |    9  | 
 |   10 <h1>IndexedDB IDL tests</h1> | 
 |   11 <div id=log></div> | 
 |   12  | 
 |   13 <script type=text/plain> | 
 |   14 enum IDBTransactionMode { | 
 |   15     "readonly", | 
 |   16     "readwrite", | 
 |   17     "versionchange" | 
 |   18 }; | 
 |   19  | 
 |   20 enum IDBRequestReadyState { | 
 |   21     "pending", | 
 |   22     "done" | 
 |   23 }; | 
 |   24  | 
 |   25 interface IDBKeyRange { | 
 |   26     readonly    attribute any     lower; | 
 |   27     readonly    attribute any     upper; | 
 |   28     readonly    attribute boolean lowerOpen; | 
 |   29     readonly    attribute boolean upperOpen; | 
 |   30     static IDBKeyRange only (any value); | 
 |   31     static IDBKeyRange lowerBound (any lower, optional boolean open = false); | 
 |   32     static IDBKeyRange upperBound (any upper, optional boolean open = false); | 
 |   33     static IDBKeyRange bound (any lower, any upper, optional boolean lowerOpen =
      false, optional boolean upperOpen = false); | 
 |   34 }; | 
 |   35  | 
 |   36 enum IDBCursorDirection { | 
 |   37     "next", | 
 |   38     "nextunique", | 
 |   39     "prev", | 
 |   40     "prevunique" | 
 |   41 }; | 
 |   42  | 
 |   43 dictionary IDBObjectStoreParameters { | 
 |   44     (DOMString or sequence<DOMString>)? keyPath = null; | 
 |   45     boolean                             autoIncrement = false; | 
 |   46 }; | 
 |   47  | 
 |   48 dictionary IDBIndexParameters { | 
 |   49     boolean unique = false; | 
 |   50     boolean multiEntry = false; | 
 |   51 }; | 
 |   52  | 
 |   53 dictionary IDBVersionChangeEventInit : EventInit { | 
 |   54     unsigned long long  oldVersion = 0; | 
 |   55     unsigned long long? newVersion = null; | 
 |   56 }; | 
 |   57  | 
 |   58 interface IDBRequest : EventTarget { | 
 |   59     readonly    attribute any                                        result; | 
 |   60     readonly    attribute DOMError                                   error; | 
 |   61     readonly    attribute (IDBObjectStore or IDBIndex or IDBCursor)? source; | 
 |   62     readonly    attribute IDBTransaction                             transaction
     ; | 
 |   63     readonly    attribute IDBRequestReadyState                       readyState; | 
 |   64                 attribute EventHandler                               onsuccess; | 
 |   65                 attribute EventHandler                               onerror; | 
 |   66 }; | 
 |   67  | 
 |   68 interface IDBOpenDBRequest : IDBRequest { | 
 |   69                 attribute EventHandler onblocked; | 
 |   70                 attribute EventHandler onupgradeneeded; | 
 |   71 }; | 
 |   72  | 
 |   73 [Constructor(DOMString type, optional IDBVersionChangeEventInit eventInitDict)] | 
 |   74 interface IDBVersionChangeEvent : Event { | 
 |   75     readonly    attribute unsigned long long  oldVersion; | 
 |   76     readonly    attribute unsigned long long? newVersion; | 
 |   77 }; | 
 |   78  | 
 |   79 Window implements IDBEnvironment; | 
 |   80 WorkerUtils implements IDBEnvironment; | 
 |   81  | 
 |   82 [NoInterfaceObject] | 
 |   83 interface IDBEnvironment { | 
 |   84     readonly    attribute IDBFactory indexedDB; | 
 |   85 }; | 
 |   86  | 
 |   87 interface IDBFactory { | 
 |   88     IDBOpenDBRequest open (DOMString name, [EnforceRange] optional unsigned long
      long version); | 
 |   89     IDBOpenDBRequest deleteDatabase (DOMString name); | 
 |   90     short            cmp (any first, any second); | 
 |   91 }; | 
 |   92  | 
 |   93 interface IDBDatabase : EventTarget { | 
 |   94     readonly    attribute DOMString          name; | 
 |   95     readonly    attribute unsigned long long version; | 
 |   96     readonly    attribute DOMStringList      objectStoreNames; | 
 |   97     IDBObjectStore createObjectStore (DOMString name, optional IDBObjectStorePar
     ameters optionalParameters); | 
 |   98     void           deleteObjectStore (DOMString name); | 
 |   99     IDBTransaction transaction ((DOMString or sequence<DOMString>) storeNames, o
     ptional IDBTransactionMode mode = "readonly"); | 
 |  100     void           close (); | 
 |  101                 attribute EventHandler       onabort; | 
 |  102                 attribute EventHandler       onerror; | 
 |  103                 attribute EventHandler       onversionchange; | 
 |  104 }; | 
 |  105  | 
 |  106 interface IDBObjectStore { | 
 |  107     readonly    attribute DOMString      name; | 
 |  108     readonly    attribute any            keyPath; | 
 |  109     readonly    attribute DOMStringList  indexNames; | 
 |  110     readonly    attribute IDBTransaction transaction; | 
 |  111     readonly    attribute boolean        autoIncrement; | 
 |  112     IDBRequest put (any value, optional any key); | 
 |  113     IDBRequest add (any value, optional any key); | 
 |  114     IDBRequest delete (any key); | 
 |  115     IDBRequest get (any key); | 
 |  116     IDBRequest clear (); | 
 |  117     IDBRequest openCursor (optional any range, optional IDBCursorDirection direc
     tion = "next"); | 
 |  118     IDBIndex   createIndex (DOMString name, (DOMString or sequence<DOMString>) k
     eyPath, optional IDBIndexParameters optionalParameters); | 
 |  119     IDBIndex   index (DOMString name); | 
 |  120     void       deleteIndex (DOMString indexName); | 
 |  121     IDBRequest count (optional any key); | 
 |  122 }; | 
 |  123  | 
 |  124 interface IDBIndex { | 
 |  125     readonly    attribute DOMString      name; | 
 |  126     readonly    attribute IDBObjectStore objectStore; | 
 |  127     readonly    attribute any            keyPath; | 
 |  128     readonly    attribute boolean        multiEntry; | 
 |  129     readonly    attribute boolean        unique; | 
 |  130     IDBRequest openCursor (optional any range, optional IDBCursorDirection direc
     tion = "next"); | 
 |  131     IDBRequest openKeyCursor (optional any range, optional IDBCursorDirection di
     rection = "next"); | 
 |  132     IDBRequest get (any key); | 
 |  133     IDBRequest getKey (any key); | 
 |  134     IDBRequest count (optional any key); | 
 |  135 }; | 
 |  136  | 
 |  137 interface IDBCursor { | 
 |  138     readonly    attribute (IDBObjectStore or IDBIndex) source; | 
 |  139     readonly    attribute IDBCursorDirection           direction; | 
 |  140     readonly    attribute any                          key; | 
 |  141     readonly    attribute any                          primaryKey; | 
 |  142     IDBRequest update (any value); | 
 |  143     void       advance ([EnforceRange] unsigned long count); | 
 |  144     void       continue (optional any key); | 
 |  145     IDBRequest delete (); | 
 |  146 }; | 
 |  147  | 
 |  148 interface IDBCursorWithValue : IDBCursor { | 
 |  149     readonly    attribute any value; | 
 |  150 }; | 
 |  151  | 
 |  152 interface IDBTransaction : EventTarget { | 
 |  153     readonly    attribute IDBTransactionMode mode; | 
 |  154     readonly    attribute IDBDatabase        db; | 
 |  155     readonly    attribute DOMError           error; | 
 |  156     IDBObjectStore objectStore (DOMString name); | 
 |  157     void           abort (); | 
 |  158                 attribute EventHandler       onabort; | 
 |  159                 attribute EventHandler       oncomplete; | 
 |  160                 attribute EventHandler       onerror; | 
 |  161 }; | 
 |  162 </script> | 
 |  163  | 
 |  164 <script type="text/plain" class="untested"> | 
 |  165 interface Window { }; | 
 |  166  | 
 |  167 interface WorkerUtils { }; | 
 |  168  | 
 |  169 interface EventTarget { }; | 
 |  170 </script> | 
 |  171  | 
 |  172 <script> | 
 |  173 "use strict"; | 
 |  174 setup(function() { | 
 |  175   var idlArray = new IdlArray(); | 
 |  176  | 
 |  177   [].forEach.call(document.querySelectorAll("script[type=text\\/plain]"), functi
     on(node) { | 
 |  178     if (node.className == "untested") { | 
 |  179        idlArray.add_untested_idls(node.textContent); | 
 |  180     } else { | 
 |  181        idlArray.add_idls(node.textContent); | 
 |  182     } | 
 |  183   }); | 
 |  184  | 
 |  185   idlArray.add_objects({ | 
 |  186     IDBKeyRange: [], | 
 |  187     IDBRequest: [], | 
 |  188     IDBOpenDBRequest: [], | 
 |  189     IDBEnvironment: [], | 
 |  190     IDBVersionChangeEvent: ['new IDBVersionChangeEvent("foo")'], | 
 |  191     IDBFactory: ['window.indexedDB'], | 
 |  192     IDBDatabase: [], | 
 |  193     IDBObjectStore: [], | 
 |  194     IDBIndex: [], | 
 |  195     IDBCursor: [], | 
 |  196     IDBCursorWithValue: [], | 
 |  197     IDBTransaction: [] | 
 |  198   }); | 
 |  199  | 
 |  200   idlArray.test(); | 
 |  201 }); | 
 |  202 </script> | 
 |  203  | 
| OLD | NEW |