@@ -2,10 +2,11 @@ define([
2
2
'intern!object' ,
3
3
'intern/chai!assert' ,
4
4
'../db/has!indexeddb?../db/IndexedDB' ,
5
- '../db/SQL' ,
5
+ '../db/has!sql?../db/SQL' ,
6
+ '../db/LocalStorage' ,
6
7
'dojo/promise/all' ,
7
8
'dojo/sniff'
8
- ] , function ( registerSuite , assert , IndexedDB , SQL , all , has ) {
9
+ ] , function ( registerSuite , assert , IndexedDB , SQL , LocalStorage , all , has ) {
9
10
var data = [
10
11
{ id : 1 , name : 'one' , prime : false , mappedTo : 'E' , words : [ 'banana' ] } ,
11
12
{ id : 2 , name : 'two' , even : true , prime : true , mappedTo : 'D' , words : [ 'banana' , 'orange' ] } ,
@@ -39,6 +40,7 @@ define([
39
40
if ( window . openDatabase ) {
40
41
registerSuite ( testsForDB ( 'dstore/db/SQL' , SQL ) ) ;
41
42
}
43
+ registerSuite ( testsForDB ( 'dstore/db/LocalStorage' , LocalStorage ) ) ;
42
44
function testsForDB ( name , DB ) {
43
45
// need to reset availability
44
46
dbConfig . available = null ;
@@ -73,15 +75,15 @@ define([
73
75
} ) ;
74
76
}
75
77
}
76
- var forEachResults = collection . forEach ( function ( object ) {
78
+ var forEachResults = collection . forEach ( function ( object ) {
77
79
console . log ( "id check" , i , results [ i ] , object . id ) ;
78
80
assert . strictEqual ( results [ i ++ ] , object . id ) ;
79
81
} ) ;
80
82
return forEachResults . then ( function ( ) {
81
83
console . log ( "results" , results ) ;
82
84
assert . strictEqual ( results . length , i ) ;
83
85
if ( options && options . range ) {
84
- return forEachResults . totalLength . then ( function ( total ) {
86
+ return forEachResults . totalLength . then ( function ( total ) {
85
87
assert . strictEqual ( results . length , total ) ;
86
88
} ) ;
87
89
}
@@ -92,10 +94,12 @@ define([
92
94
name : name ,
93
95
setup : function ( ) {
94
96
var results = [ ] ;
95
- return db . forEach ( function ( object ) {
96
- // clear the data
97
- results . push ( db . remove ( object . id ) ) ;
98
- } ) . then ( function ( ) {
97
+ return db . fetch ( ) . then ( function ( data ) {
98
+ // make a copy
99
+ data = data . slice ( 0 ) ;
100
+ for ( var i = 0 , l = data . length ; i < l ; i ++ ) {
101
+ results . push ( db . remove ( data [ i ] . id ) ) ;
102
+ }
99
103
return all ( results ) ;
100
104
} ) . then ( function ( ) {
101
105
results = [ ] ;
@@ -158,11 +162,26 @@ define([
158
162
db . add ( { id : 6 , name : 'six' , prime : false , words : [ 'pineapple' , 'orange juice' ] } )
159
163
] ) . then ( function ( ) {
160
164
return all ( [
161
- testQuery ( new Filter ( ) . gte ( 'name' , 's' ) . lte ( 'name' , 'u' ) , [ 6 , 3 ] ) ( ) ,
165
+ testQuery ( new Filter ( ) . gte ( 'name' , 's' ) . lte ( 'name' , 'u' ) , { sort : [ { property : 'id' } ] } , [ 3 , 6 ] ) ( ) ,
162
166
testQuery ( new Filter ( ) . contains ( 'words' , [ new Filter ( ) . match ( 'words' , / ^ o r a n g e / ) ] ) , { multi : true } , [ 3 , 6 ] ) ( )
163
167
] ) ;
164
168
} ) ;
165
169
} ) ;
170
+ } ,
171
+ 'reload db' : function ( ) {
172
+ // reload the DB store and make sure the data is still there
173
+ dbConfig . openRequest = null ;
174
+ db = new DB ( { dbConfig : dbConfig , storeName : 'test' } ) ;
175
+ return db . get ( 1 ) . then ( function ( one ) {
176
+ assert . strictEqual ( one . id , 1 ) ;
177
+ assert . strictEqual ( one . name , 'one' ) ;
178
+ assert . strictEqual ( one . prime , false ) ;
179
+ assert . strictEqual ( one . mappedTo , 'E' ) ;
180
+ return all ( [
181
+ testQuery ( new Filter ( ) . gte ( 'name' , 's' ) . lte ( 'name' , 'u' ) , { sort :[ { property : 'id' } ] } , [ 3 , 6 ] ) ( ) ,
182
+ testQuery ( new Filter ( ) . contains ( 'words' , [ new Filter ( ) . match ( 'words' , / ^ o r a n g e / ) ] ) , { multi : true } , [ 3 , 6 ] ) ( )
183
+ ] ) ;
184
+ } ) ;
166
185
}
167
186
168
187
} ;
0 commit comments