couch-quilt 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +3 -0
- data/INSTALL +32 -0
- data/README.md +33 -0
- data/Rakefile +39 -0
- data/bin/couchquilt +55 -0
- data/couch-quilt.gemspec +56 -0
- data/lib/couchquilt.rb +37 -0
- data/lib/couchquilt/couch_client.rb +44 -0
- data/lib/couchquilt/debugged_fs.rb +21 -0
- data/lib/couchquilt/fs.rb +414 -0
- data/lib/couchquilt/version.rb +3 -0
- data/spec/couchquilt_spec.rb +691 -0
- data/spec/spec_helper.rb +8 -0
- metadata +68 -0
@@ -0,0 +1,691 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'spec_helper.rb')
|
2
|
+
|
3
|
+
# Note: databases, documents and keys with slashes are not supported by now
|
4
|
+
describe "Quilt" do
|
5
|
+
before :all do
|
6
|
+
RestClient.put(File.join(SERVER_NAME, TESTDB), nil)
|
7
|
+
|
8
|
+
@document = {
|
9
|
+
"_id" => "document_id",
|
10
|
+
"name" => "This is a name",
|
11
|
+
"integer" => 12,
|
12
|
+
"float" => 1.2,
|
13
|
+
"boolean" => true,
|
14
|
+
"object" => { "key" => "this is a value" },
|
15
|
+
"array" => ["this is another value"],
|
16
|
+
"empty" => {}
|
17
|
+
}
|
18
|
+
RestClient.put File.join(SERVER_NAME, TESTDB, @document["_id"]), @document.to_json
|
19
|
+
|
20
|
+
@design_document = {
|
21
|
+
"_id" => "_design/design_document_id",
|
22
|
+
"language" => "javascript",
|
23
|
+
"name" => "This is a name",
|
24
|
+
"shows" => {
|
25
|
+
"show_function_name" => "function(doc, req) { return 'Hello World!'; }",
|
26
|
+
},
|
27
|
+
"lists" => {
|
28
|
+
"list_function_name" => "function(head, req) { return 'Hello World!'; }",
|
29
|
+
},
|
30
|
+
"views" => {
|
31
|
+
"view_function_name" => {
|
32
|
+
"map" => "function(doc) { if(doc.name) { emit(doc.name, null); } }"
|
33
|
+
}
|
34
|
+
},
|
35
|
+
}
|
36
|
+
RestClient.put File.join(SERVER_NAME, TESTDB, @design_document["_id"]), @design_document.to_json
|
37
|
+
|
38
|
+
@quilt = Couchquilt::DebuggedFS.new("http://127.0.0.1:5984")
|
39
|
+
end
|
40
|
+
|
41
|
+
after :all do
|
42
|
+
RestClient.delete(File.join(SERVER_NAME, TESTDB))
|
43
|
+
end
|
44
|
+
|
45
|
+
describe "/" do
|
46
|
+
it "directory? should return true" do
|
47
|
+
@quilt.directory?("/").should be_true
|
48
|
+
end
|
49
|
+
it "file? should return false" do
|
50
|
+
@quilt.file?("/").should be_false
|
51
|
+
end
|
52
|
+
it "contents should list databases" do
|
53
|
+
@quilt.contents("/").should include(TESTDB)
|
54
|
+
end
|
55
|
+
it "can_mkdir? should return false" do
|
56
|
+
@quilt.can_mkdir?("/").should be_false
|
57
|
+
end
|
58
|
+
it "can_rmdir? should return false" do
|
59
|
+
@quilt.can_rmdir?("/").should be_false
|
60
|
+
end
|
61
|
+
|
62
|
+
# /unknown_database
|
63
|
+
describe "unknown_database/" do
|
64
|
+
it "directory? should return false" do
|
65
|
+
@quilt.directory?("/unknown_database").should be_false
|
66
|
+
end
|
67
|
+
it "file? should return false" do
|
68
|
+
@quilt.file?("/unknown_database").should be_false
|
69
|
+
end
|
70
|
+
it "can_mkdir? should return true" do
|
71
|
+
@quilt.can_mkdir?("/unknown_database").should be_true
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
# /new_database
|
76
|
+
describe "#{TESTDB}-new/" do
|
77
|
+
before do
|
78
|
+
@new_database = "#{TESTDB}-new"
|
79
|
+
end
|
80
|
+
|
81
|
+
it "mkdir should create database which touch _delete should remove" do
|
82
|
+
@quilt.directory?("/#{@new_database}").should be_false
|
83
|
+
@quilt.mkdir("/#{@new_database}").should be_true
|
84
|
+
@quilt.directory?("/#{@new_database}").should be_true
|
85
|
+
@quilt.touch("/#{@new_database}/_delete").should be_true
|
86
|
+
@quilt.directory?("/#{@new_database}").should be_false
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
# /database_id
|
91
|
+
describe "database_id/" do
|
92
|
+
it "directory? should return true" do
|
93
|
+
@quilt.directory?("/#{TESTDB}").should be_true
|
94
|
+
end
|
95
|
+
it "file? should return false" do
|
96
|
+
@quilt.file?("/#{TESTDB}").should be_false
|
97
|
+
end
|
98
|
+
it "contents should list documents" do
|
99
|
+
@quilt.contents("/#{TESTDB}").should == ["_design", "compact_running.b.js", "db_name.js", "disk_format_version.i.js", "disk_size.i.js", "doc_count.i.js", "doc_del_count.i.js", "document_id", "instance_start_time.js", "purge_seq.i.js", "update_seq.i.js"]
|
100
|
+
end
|
101
|
+
it "can_mkdir? should return false" do
|
102
|
+
@quilt.can_mkdir?("/#{TESTDB}").should be_false
|
103
|
+
end
|
104
|
+
it "can_rmdir? should return false" do
|
105
|
+
@quilt.can_rmdir?("/#{TESTDB}").should be_false
|
106
|
+
end
|
107
|
+
|
108
|
+
# /database_id/db_name.js
|
109
|
+
describe "db_name.js" do
|
110
|
+
it "directory? should return false" do
|
111
|
+
@quilt.directory?("/#{TESTDB}/db_name.js").should be_false
|
112
|
+
end
|
113
|
+
it "file? should return true" do
|
114
|
+
@quilt.file?("/#{TESTDB}/db_name.js").should be_true
|
115
|
+
end
|
116
|
+
it "read_file should return contents" do
|
117
|
+
@quilt.read_file("/#{TESTDB}/db_name.js").should == TESTDB
|
118
|
+
end
|
119
|
+
it "can_write? should return false" do
|
120
|
+
@quilt.can_write?("/#{TESTDB}/db_name.js").should be_false
|
121
|
+
end
|
122
|
+
it "can_delete? should return false" do
|
123
|
+
@quilt.can_delete?("/#{TESTDB}/db_name.js").should be_false
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
# /database_id/doc_count.i.js
|
128
|
+
describe "doc_count.i.js" do
|
129
|
+
it "directory? should return false" do
|
130
|
+
@quilt.directory?("/#{TESTDB}/doc_count.i.js").should be_false
|
131
|
+
end
|
132
|
+
it "file? should return true" do
|
133
|
+
@quilt.file?("/#{TESTDB}/doc_count.i.js").should be_true
|
134
|
+
end
|
135
|
+
it "read_file should return contents" do
|
136
|
+
@quilt.read_file("/#{TESTDB}/doc_count.i.js").should == "2"
|
137
|
+
end
|
138
|
+
it "can_write? should return false" do
|
139
|
+
@quilt.can_write?("/#{TESTDB}/doc_count.i.js").should be_false
|
140
|
+
end
|
141
|
+
it "can_delete? should return false" do
|
142
|
+
@quilt.can_delete?("/#{TESTDB}/doc_count.i.js").should be_false
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
# /database_id/unknown_document
|
147
|
+
describe "unknown_document/" do
|
148
|
+
it "directory? should return false" do
|
149
|
+
@quilt.directory?("/#{TESTDB}/unknown_document").should be_false
|
150
|
+
end
|
151
|
+
it "file? should return false" do
|
152
|
+
@quilt.file?("/#{TESTDB}/unknown_document").should be_false
|
153
|
+
end
|
154
|
+
it "can_mkdir? should return true" do
|
155
|
+
@quilt.can_mkdir?("/#{TESTDB}/unknown_document").should be_true
|
156
|
+
end
|
157
|
+
it "can_rmdir? should return false" do
|
158
|
+
@quilt.can_rmdir?("/#{TESTDB}/unknown_document").should be_false
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
# /database_id/document_id
|
163
|
+
describe "document_id/" do
|
164
|
+
it "directory? should return true" do
|
165
|
+
@quilt.directory?("/#{TESTDB}/document_id").should be_true
|
166
|
+
end
|
167
|
+
it "file? should return false" do
|
168
|
+
@quilt.file?("/#{TESTDB}/document_id").should be_false
|
169
|
+
end
|
170
|
+
it "contents should list documents content" do
|
171
|
+
@quilt.contents("/#{TESTDB}/document_id").should == ["_id.js", "_rev.js", "array", "boolean.b.js", "empty", "float.f.js", "integer.i.js", "name.js", "object"]
|
172
|
+
end
|
173
|
+
it "can_mkdir? should return false" do
|
174
|
+
@quilt.can_mkdir?("/#{TESTDB}/document_id").should be_false
|
175
|
+
end
|
176
|
+
it "can_rmdir? should return false" do
|
177
|
+
@quilt.can_rmdir?("/#{TESTDB}/document_id").should be_false
|
178
|
+
end
|
179
|
+
it "touch _delete should delete document" do
|
180
|
+
@quilt.touch("/#{TESTDB}/document_id/_delete").should be_true
|
181
|
+
@quilt.directory?("/#{TESTDB}/document_id").should be_false
|
182
|
+
end
|
183
|
+
|
184
|
+
# /database_id/document_id/unknown_attribute
|
185
|
+
describe "unknown_attribute/" do
|
186
|
+
it "directory? should return false" do
|
187
|
+
@quilt.directory?("/#{TESTDB}/document_id/unknown_attribute").should be_false
|
188
|
+
end
|
189
|
+
it "file? should return false" do
|
190
|
+
@quilt.file?("/#{TESTDB}/document_id/unknown_attribute").should be_false
|
191
|
+
end
|
192
|
+
it "can_mkdir? should return true" do
|
193
|
+
@quilt.can_mkdir?("/#{TESTDB}/document_id/unknown_attribute").should be_true
|
194
|
+
end
|
195
|
+
it "mkdir should update document while rmdir should reset it" do
|
196
|
+
@quilt.mkdir("/#{TESTDB}/document_id/unknown_attribute").should be_true
|
197
|
+
@quilt.directory?("/#{TESTDB}/document_id/unknown_attribute").should be_true
|
198
|
+
@quilt.rmdir("/#{TESTDB}/document_id/unknown_attribute").should be_true
|
199
|
+
@quilt.directory?("/#{TESTDB}/document_id/unknown_attribute").should be_false
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
# /database_id/document_id/_id.js
|
204
|
+
describe "_id.js" do
|
205
|
+
it "directory? should return false" do
|
206
|
+
@quilt.directory?("/#{TESTDB}/document_id/_id.js").should be_false
|
207
|
+
end
|
208
|
+
it "file? should return true" do
|
209
|
+
@quilt.file?("/#{TESTDB}/document_id/_id.js").should be_true
|
210
|
+
end
|
211
|
+
it "read_file should return contents" do
|
212
|
+
@quilt.read_file("/#{TESTDB}/document_id/_id.js").should == "document_id"
|
213
|
+
end
|
214
|
+
it "can_write? should return false" do
|
215
|
+
@quilt.can_write?("/#{TESTDB}/document_id/_id.js").should be_false
|
216
|
+
end
|
217
|
+
it "can_delete? should return false" do
|
218
|
+
@quilt.can_delete?("/#{TESTDB}/document_id/_id.js").should be_false
|
219
|
+
end
|
220
|
+
end
|
221
|
+
|
222
|
+
# /database_id/document_id/name.js
|
223
|
+
describe "name.js" do
|
224
|
+
it "directory? should return false" do
|
225
|
+
@quilt.directory?("/#{TESTDB}/document_id/name.js").should be_false
|
226
|
+
end
|
227
|
+
it "file? should return true" do
|
228
|
+
@quilt.file?("/#{TESTDB}/document_id/name.js").should be_true
|
229
|
+
end
|
230
|
+
it "read_file should return contents" do
|
231
|
+
@quilt.read_file("/#{TESTDB}/document_id/name.js").should == @document["name"]
|
232
|
+
end
|
233
|
+
it "can_write? should return true" do
|
234
|
+
@quilt.can_write?("/#{TESTDB}/document_id/name.js").should be_true
|
235
|
+
end
|
236
|
+
it "write_to should update document" do
|
237
|
+
@quilt.write_to("/#{TESTDB}/document_id/name.js", "value").should be_true
|
238
|
+
end
|
239
|
+
it "can_delete? should return false" do
|
240
|
+
@quilt.can_delete?("/#{TESTDB}/document_id/name.js").should be_true
|
241
|
+
end
|
242
|
+
it "delete should update document" do
|
243
|
+
@quilt.delete("/#{TESTDB}/document_id/name.js").should be_true
|
244
|
+
@quilt.file?("/#{TESTDB}/document_id/name.js").should be_false
|
245
|
+
end
|
246
|
+
end
|
247
|
+
|
248
|
+
# /database_id/document_id/boolean.b.js
|
249
|
+
describe "boolean.b.js" do
|
250
|
+
it "directory? should return false" do
|
251
|
+
@quilt.directory?("/#{TESTDB}/document_id/boolean.b.js").should be_false
|
252
|
+
end
|
253
|
+
it "file? should return true" do
|
254
|
+
@quilt.file?("/#{TESTDB}/document_id/boolean.b.js").should be_true
|
255
|
+
end
|
256
|
+
it "read_file should return contents" do
|
257
|
+
@quilt.read_file("/#{TESTDB}/document_id/boolean.b.js").should == @document["boolean"].to_s
|
258
|
+
end
|
259
|
+
it "can_write? should return true" do
|
260
|
+
@quilt.can_write?("/#{TESTDB}/document_id/boolean.b.js").should be_true
|
261
|
+
end
|
262
|
+
it "write_to should update document" do
|
263
|
+
@quilt.write_to("/#{TESTDB}/document_id/boolean.b.js", "value").should be_true
|
264
|
+
end
|
265
|
+
it "can_delete? should return false" do
|
266
|
+
@quilt.can_delete?("/#{TESTDB}/document_id/boolean.b.js").should be_true
|
267
|
+
end
|
268
|
+
it "delete should update document" do
|
269
|
+
@quilt.delete("/#{TESTDB}/document_id/boolean.b.js").should be_true
|
270
|
+
@quilt.file?("/#{TESTDB}/document_id/boolean.b.js").should be_false
|
271
|
+
end
|
272
|
+
end
|
273
|
+
|
274
|
+
|
275
|
+
# /database_id/document_id/object
|
276
|
+
describe "object/" do
|
277
|
+
it "directory? should return true" do
|
278
|
+
@quilt.directory?("/#{TESTDB}/document_id/object").should be_true
|
279
|
+
end
|
280
|
+
it "file? should return false" do
|
281
|
+
@quilt.file?("/#{TESTDB}/document_id/object").should be_false
|
282
|
+
end
|
283
|
+
it "contents should list object content" do
|
284
|
+
@quilt.contents("/#{TESTDB}/document_id/object").should == ["key.js"]
|
285
|
+
end
|
286
|
+
it "can_mkdir? should return false" do
|
287
|
+
@quilt.can_mkdir?("/#{TESTDB}/document_id/object").should be_false
|
288
|
+
end
|
289
|
+
it "can_rmdir? should return false when not empty" do
|
290
|
+
@quilt.can_rmdir?("/#{TESTDB}/document_id/object").should be_false
|
291
|
+
end
|
292
|
+
end
|
293
|
+
|
294
|
+
# /database_id/document_id/array
|
295
|
+
describe "array/" do
|
296
|
+
it "directory? should return true" do
|
297
|
+
@quilt.directory?("/#{TESTDB}/document_id/array").should be_true
|
298
|
+
end
|
299
|
+
it "file? should return false" do
|
300
|
+
@quilt.file?("/#{TESTDB}/document_id/array").should be_false
|
301
|
+
end
|
302
|
+
it "contents should list array content" do
|
303
|
+
@quilt.contents("/#{TESTDB}/document_id/array").should == ["000.js"]
|
304
|
+
end
|
305
|
+
it "can_mkdir? should return false" do
|
306
|
+
@quilt.can_mkdir?("/#{TESTDB}/document_id/array").should be_false
|
307
|
+
end
|
308
|
+
it "can_rmdir? should return false when not empty" do
|
309
|
+
@quilt.can_rmdir?("/#{TESTDB}/document_id/array").should be_false
|
310
|
+
end
|
311
|
+
end
|
312
|
+
|
313
|
+
# /database_id/document_id/empty
|
314
|
+
describe "empty/" do
|
315
|
+
it "directory? should return true" do
|
316
|
+
@quilt.directory?("/#{TESTDB}/document_id/empty").should be_true
|
317
|
+
end
|
318
|
+
it "file? should return false" do
|
319
|
+
@quilt.file?("/#{TESTDB}/document_id/empty").should be_false
|
320
|
+
end
|
321
|
+
it "contents should list empty content" do
|
322
|
+
@quilt.contents("/#{TESTDB}/document_id/empty").should == []
|
323
|
+
end
|
324
|
+
it "can_mkdir? should return false" do
|
325
|
+
@quilt.can_mkdir?("/#{TESTDB}/document_id/empty").should be_false
|
326
|
+
end
|
327
|
+
it "can_rmdir? should return true when empty" do
|
328
|
+
@quilt.can_rmdir?("/#{TESTDB}/document_id/empty").should be_true
|
329
|
+
end
|
330
|
+
it "rmdir should remove empty from document tree when empty" do
|
331
|
+
@quilt.rmdir("/#{TESTDB}/document_id/empty").should be_true
|
332
|
+
@quilt.directory?("/#{TESTDB}/document_id/empty").should be_false
|
333
|
+
end
|
334
|
+
end
|
335
|
+
end
|
336
|
+
|
337
|
+
# /database_id/_design
|
338
|
+
describe "_design/" do
|
339
|
+
it "directory? should return true" do
|
340
|
+
@quilt.directory?("/#{TESTDB}/_design").should be_true
|
341
|
+
end
|
342
|
+
it "file? should return false" do
|
343
|
+
@quilt.file?("/#{TESTDB}/_design").should be_false
|
344
|
+
end
|
345
|
+
it "contents should list design documents" do
|
346
|
+
@quilt.contents("/#{TESTDB}/_design").should == ["design_document_id"]
|
347
|
+
end
|
348
|
+
it "can_mkdir? should return false" do
|
349
|
+
@quilt.can_mkdir?("/#{TESTDB}/_design").should be_false
|
350
|
+
end
|
351
|
+
it "can_rmdir? should return false" do
|
352
|
+
@quilt.can_rmdir?("/#{TESTDB}/_design").should be_false
|
353
|
+
end
|
354
|
+
|
355
|
+
# /database_id/_design/new_design_document_id
|
356
|
+
describe "new_design_document_id/" do
|
357
|
+
it "mkdir should create design document which touch _delete should remove" do
|
358
|
+
@quilt.directory?("/#{TESTDB}/_design/new_design_document_id").should be_false
|
359
|
+
@quilt.mkdir("/#{TESTDB}/_design/new_design_document_id").should be_true
|
360
|
+
@quilt.directory?("/#{TESTDB}/_design/new_design_document_id").should be_true
|
361
|
+
@quilt.touch("/#{TESTDB}/_design/new_design_document_id/_delete").should be_true
|
362
|
+
@quilt.directory?("/#{TESTDB}/_design/new_design_document_id").should be_false
|
363
|
+
end
|
364
|
+
end
|
365
|
+
|
366
|
+
# /database_id/_design/design_document_id
|
367
|
+
describe "design_document_id/" do
|
368
|
+
it "directory? should return true" do
|
369
|
+
@quilt.directory?("/#{TESTDB}/_design/design_document_id").should be_true
|
370
|
+
end
|
371
|
+
it "file? should return false" do
|
372
|
+
@quilt.file?("/#{TESTDB}/_design/design_document_id").should be_false
|
373
|
+
end
|
374
|
+
it "contents should list design documents content" do
|
375
|
+
@quilt.contents("/#{TESTDB}/_design/design_document_id").should == ["_id.js", "_list", "_rev.js", "_show", "_view", "language.js", "lists", "name.js", "shows", "views"]
|
376
|
+
end
|
377
|
+
it "can_mkdir? should return false" do
|
378
|
+
@quilt.can_mkdir?("/#{TESTDB}/_design/design_document_id").should be_false
|
379
|
+
end
|
380
|
+
it "can_rmdir? should return false" do
|
381
|
+
@quilt.can_rmdir?("/#{TESTDB}/_design/design_document_id").should be_false
|
382
|
+
end
|
383
|
+
|
384
|
+
# /database_id/_design/design_document_id/_id.js
|
385
|
+
describe "_id.js" do
|
386
|
+
it "directory? should return false" do
|
387
|
+
@quilt.directory?("/#{TESTDB}/_design/design_document_id/_id.js").should be_false
|
388
|
+
end
|
389
|
+
it "file? should return true" do
|
390
|
+
@quilt.file?("/#{TESTDB}/_design/design_document_id/_id.js").should be_true
|
391
|
+
end
|
392
|
+
it "read_file should return value" do
|
393
|
+
@quilt.read_file("/#{TESTDB}/_design/design_document_id/_id.js").should == @design_document["_id"]
|
394
|
+
end
|
395
|
+
it "can_write? should return false" do
|
396
|
+
@quilt.can_write?("/#{TESTDB}/_design/design_document_id/_id.js").should be_false
|
397
|
+
end
|
398
|
+
it "can_delete? should return false" do
|
399
|
+
@quilt.can_delete?("/#{TESTDB}/_design/design_document_id/_id.js").should be_false
|
400
|
+
end
|
401
|
+
end
|
402
|
+
|
403
|
+
# /database_id/_design/design_document_id/name.js
|
404
|
+
describe "name.js" do
|
405
|
+
it "directory? should return false" do
|
406
|
+
@quilt.directory?("/#{TESTDB}/_design/design_document_id/name.js").should be_false
|
407
|
+
end
|
408
|
+
it "file? should return true" do
|
409
|
+
@quilt.file?("/#{TESTDB}/_design/design_document_id/name.js").should be_true
|
410
|
+
end
|
411
|
+
it "read_file should return value" do
|
412
|
+
@quilt.read_file("/#{TESTDB}/_design/design_document_id/name.js").should == @design_document["name"]
|
413
|
+
end
|
414
|
+
it "can_write? should return true" do
|
415
|
+
@quilt.can_write?("/#{TESTDB}/_design/design_document_id/name.js").should be_true
|
416
|
+
end
|
417
|
+
it "write_to should update _design/design_document_id" do
|
418
|
+
@quilt.write_to("/#{TESTDB}/_design/design_document_id/name.js", "value").should be_true
|
419
|
+
end
|
420
|
+
it "can_delete? should return true" do
|
421
|
+
@quilt.can_delete?("/#{TESTDB}/_design/design_document_id/name.js").should be_true
|
422
|
+
end
|
423
|
+
it "delete should update design document" do
|
424
|
+
@quilt.delete("/#{TESTDB}/_design/design_document_id/name.js").should be_true
|
425
|
+
@quilt.file?("/#{TESTDB}/_design/design_document_id/name.js").should be_false
|
426
|
+
end
|
427
|
+
end
|
428
|
+
|
429
|
+
# /database_id/_design/design_document_id/_list
|
430
|
+
describe "_list/" do
|
431
|
+
it "directory? should return true" do
|
432
|
+
@quilt.directory?("/#{TESTDB}/_design/design_document_id/_list").should be_true
|
433
|
+
end
|
434
|
+
it "file? should return false" do
|
435
|
+
@quilt.file?("/#{TESTDB}/_design/design_document_id/_list").should be_false
|
436
|
+
end
|
437
|
+
it "contents should list list functions" do
|
438
|
+
@quilt.contents("/#{TESTDB}/_design/design_document_id/_list").should == ["list_function_name"]
|
439
|
+
end
|
440
|
+
it "can_mkdir? should return false" do
|
441
|
+
@quilt.can_mkdir?("/#{TESTDB}/_design/design_document_id/_list").should be_false
|
442
|
+
end
|
443
|
+
it "can_rmdir? should return false" do
|
444
|
+
@quilt.can_rmdir?("/#{TESTDB}/_design/design_document_id/_list").should be_false
|
445
|
+
end
|
446
|
+
|
447
|
+
# /database_id/_design/design_document_id/_list/list_function_name
|
448
|
+
describe "list_function_name/" do
|
449
|
+
it "directory? should return true" do
|
450
|
+
@quilt.directory?("/#{TESTDB}/_design/design_document_id/_list/list_function_name").should be_true
|
451
|
+
end
|
452
|
+
it "file? should return false" do
|
453
|
+
@quilt.file?("/#{TESTDB}/_design/design_document_id/_list/list_function_name").should be_false
|
454
|
+
end
|
455
|
+
it "contents should list views" do
|
456
|
+
@quilt.contents("/#{TESTDB}/_design/design_document_id/_list/list_function_name").should == ["view_function_name.html"]
|
457
|
+
end
|
458
|
+
it "can_mkdir? should return false" do
|
459
|
+
@quilt.can_mkdir?("/#{TESTDB}/_design/design_document_id/_list/list_function_name").should be_false
|
460
|
+
end
|
461
|
+
it "can_rmdir? should return false" do
|
462
|
+
@quilt.can_rmdir?("/#{TESTDB}/_design/design_document_id/_list/list_function_name").should be_false
|
463
|
+
end
|
464
|
+
|
465
|
+
# /database_id/_design/design_document_id/_list/list_function_name/view_function_name.html
|
466
|
+
describe "view_function_name.html" do
|
467
|
+
it "directory? should return false" do
|
468
|
+
@quilt.directory?("/#{TESTDB}/_design/design_document_id/_list/list_function_name/view_function_name.html").should be_false
|
469
|
+
end
|
470
|
+
it "file? should return true" do
|
471
|
+
@quilt.file?("/#{TESTDB}/_design/design_document_id/_list/list_function_name/view_function_name.html").should be_true
|
472
|
+
end
|
473
|
+
it "read_file should return contents" do
|
474
|
+
@quilt.read_file("/#{TESTDB}/_design/design_document_id/_list/list_function_name/view_function_name.html").should == "Hello World!"
|
475
|
+
end
|
476
|
+
it "can_write? should return false" do
|
477
|
+
@quilt.can_write?("/#{TESTDB}/_design/design_document_id/_list/list_function_name/view_function_name.html").should be_false
|
478
|
+
end
|
479
|
+
it "can_delete? should return false" do
|
480
|
+
@quilt.can_delete?("/#{TESTDB}/_design/design_document_id/_list/list_function_name/view_function_name.html").should be_false
|
481
|
+
end
|
482
|
+
end
|
483
|
+
end
|
484
|
+
end
|
485
|
+
|
486
|
+
# /database_id/_design/design_document_id/_show
|
487
|
+
describe "_show/" do
|
488
|
+
it "directory? should return true" do
|
489
|
+
@quilt.directory?("/#{TESTDB}/_design/design_document_id/_show").should be_true
|
490
|
+
end
|
491
|
+
it "file? should return false" do
|
492
|
+
@quilt.file?("/#{TESTDB}/_design/design_document_id/_show").should be_false
|
493
|
+
end
|
494
|
+
it "contents should list show functions" do
|
495
|
+
@quilt.contents("/#{TESTDB}/_design/design_document_id/_show").should == ["show_function_name"]
|
496
|
+
end
|
497
|
+
it "can_mkdir? should return false" do
|
498
|
+
@quilt.can_mkdir?("/#{TESTDB}/_design/design_document_id/_show").should be_false
|
499
|
+
end
|
500
|
+
it "can_rmdir? should return false" do
|
501
|
+
@quilt.can_rmdir?("/#{TESTDB}/_design/design_document_id/_show").should be_false
|
502
|
+
end
|
503
|
+
|
504
|
+
# /database_id/_design/design_document_id/_show/show_function_name
|
505
|
+
describe "show_function_name/" do
|
506
|
+
it "directory? should return true" do
|
507
|
+
@quilt.directory?("/#{TESTDB}/_design/design_document_id/_show/show_function_name").should be_true
|
508
|
+
end
|
509
|
+
it "file? should return false" do
|
510
|
+
@quilt.file?("/#{TESTDB}/_design/design_document_id/_show/show_function_name").should be_false
|
511
|
+
end
|
512
|
+
it "contents should list documents" do
|
513
|
+
@quilt.contents("/#{TESTDB}/_design/design_document_id/_show/show_function_name").should == ["document_id.html"]
|
514
|
+
end
|
515
|
+
it "can_mkdir? should return false" do
|
516
|
+
@quilt.can_mkdir?("/#{TESTDB}/_design/design_document_id/_show/show_function_name").should be_false
|
517
|
+
end
|
518
|
+
it "can_rmdir? should return false" do
|
519
|
+
@quilt.can_rmdir?("/#{TESTDB}/_design/design_document_id/_show/show_function_name").should be_false
|
520
|
+
end
|
521
|
+
|
522
|
+
# /database_id/_design/design_document_id/_show/show_function_name/document_id.html
|
523
|
+
describe "document_id.html" do
|
524
|
+
it "directory? should return false" do
|
525
|
+
@quilt.directory?("/#{TESTDB}/_design/design_document_id/_show/show_function_name/document_id.html").should be_false
|
526
|
+
end
|
527
|
+
it "file? should return true" do
|
528
|
+
@quilt.file?("/#{TESTDB}/_design/design_document_id/_show/show_function_name/document_id.html").should be_true
|
529
|
+
end
|
530
|
+
it "read_file should return contents" do
|
531
|
+
@quilt.read_file("/#{TESTDB}/_design/design_document_id/_show/show_function_name/document_id.html").should == "Hello World!"
|
532
|
+
end
|
533
|
+
it "can_write? should return false" do
|
534
|
+
@quilt.can_write?("/#{TESTDB}/_design/design_document_id/_show/show_function_name/document_id.html").should be_false
|
535
|
+
end
|
536
|
+
it "can_delete? should return false" do
|
537
|
+
@quilt.can_delete?("/#{TESTDB}/_design/design_document_id/_show/show_function_name/document_id.html").should be_false
|
538
|
+
end
|
539
|
+
end
|
540
|
+
end
|
541
|
+
end
|
542
|
+
|
543
|
+
# /database_id/_design/design_document_id/_view
|
544
|
+
describe "_view/" do
|
545
|
+
it "directory? should return true" do
|
546
|
+
@quilt.directory?("/#{TESTDB}/_design/design_document_id/_view").should be_true
|
547
|
+
end
|
548
|
+
it "file? should return false" do
|
549
|
+
@quilt.file?("/#{TESTDB}/_design/design_document_id/_view").should be_false
|
550
|
+
end
|
551
|
+
it "contents should list view functions" do
|
552
|
+
@quilt.contents("/#{TESTDB}/_design/design_document_id/_view").should == ["view_function_name"]
|
553
|
+
end
|
554
|
+
it "can_mkdir? should return false" do
|
555
|
+
@quilt.can_mkdir?("/#{TESTDB}/_design/design_document_id/_view").should be_false
|
556
|
+
end
|
557
|
+
it "can_rmdir? should return false" do
|
558
|
+
@quilt.can_rmdir?("/#{TESTDB}/_design/design_document_id/_view").should be_false
|
559
|
+
end
|
560
|
+
|
561
|
+
# /database_id/_design/design_document_id/_view/view_function_name
|
562
|
+
describe "view_function_name/" do
|
563
|
+
it "directory? should return true" do
|
564
|
+
@quilt.directory?("/#{TESTDB}/_design/design_document_id/_view/view_function_name").should be_true
|
565
|
+
end
|
566
|
+
it "file? should return false" do
|
567
|
+
@quilt.file?("/#{TESTDB}/_design/design_document_id/_view/view_function_name").should be_false
|
568
|
+
end
|
569
|
+
it "contents should list view result document contents" do
|
570
|
+
@quilt.contents("/#{TESTDB}/_design/design_document_id/_view/view_function_name").should == ["offset.i.js", "rows", "total_rows.i.js"]
|
571
|
+
end
|
572
|
+
it "can_mkdir? should return false" do
|
573
|
+
@quilt.can_mkdir?("/#{TESTDB}/_design/design_document_id/_view/view_function_name").should be_false
|
574
|
+
end
|
575
|
+
it "can_rmdir? should return false" do
|
576
|
+
@quilt.can_rmdir?("/#{TESTDB}/_design/design_document_id/_view/view_function_name").should be_false
|
577
|
+
end
|
578
|
+
describe "offset.i.js" do
|
579
|
+
it "directory? should return false" do
|
580
|
+
@quilt.directory?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/offset.i.js").should be_false
|
581
|
+
end
|
582
|
+
it "file? should return true" do
|
583
|
+
@quilt.file?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/offset.i.js").should be_true
|
584
|
+
end
|
585
|
+
it "can_delete? should return false" do
|
586
|
+
@quilt.can_delete?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/offset.i.js").should be_false
|
587
|
+
end
|
588
|
+
end
|
589
|
+
describe "total_rows.i.js" do
|
590
|
+
it "directory? should return false" do
|
591
|
+
@quilt.directory?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/total_rows.i.js").should be_false
|
592
|
+
end
|
593
|
+
it "file? should return true" do
|
594
|
+
@quilt.file?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/total_rows.i.js").should be_true
|
595
|
+
end
|
596
|
+
it "can_delete? should return false" do
|
597
|
+
@quilt.can_delete?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/total_rows.i.js").should be_false
|
598
|
+
end
|
599
|
+
end
|
600
|
+
describe "rows/" do
|
601
|
+
it "directory? should return true" do
|
602
|
+
@quilt.directory?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows").should be_true
|
603
|
+
end
|
604
|
+
it "file? should return false" do
|
605
|
+
@quilt.file?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows").should be_false
|
606
|
+
end
|
607
|
+
it "contents should list view rows" do
|
608
|
+
@quilt.contents("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows").should == ["000"]
|
609
|
+
end
|
610
|
+
it "can_mkdir? should return false" do
|
611
|
+
@quilt.can_mkdir?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows").should be_false
|
612
|
+
end
|
613
|
+
it "can_rmdir? should return false" do
|
614
|
+
@quilt.can_rmdir?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows").should be_false
|
615
|
+
end
|
616
|
+
describe "000/" do
|
617
|
+
it "directory? should return true" do
|
618
|
+
@quilt.directory?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000").should be_true
|
619
|
+
end
|
620
|
+
it "file? should return false" do
|
621
|
+
@quilt.file?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000").should be_false
|
622
|
+
end
|
623
|
+
it "contents should list view result row content" do
|
624
|
+
@quilt.contents("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000").should == ["id.js", "key.js", "value.js"]
|
625
|
+
end
|
626
|
+
it "can_mkdir? should return false" do
|
627
|
+
@quilt.can_mkdir?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000").should be_false
|
628
|
+
end
|
629
|
+
it "can_rmdir? should return false" do
|
630
|
+
@quilt.can_rmdir?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000").should be_false
|
631
|
+
end
|
632
|
+
describe "id.js" do
|
633
|
+
it "directory? should return false" do
|
634
|
+
@quilt.directory?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/id.js").should be_false
|
635
|
+
end
|
636
|
+
it "file? should return true" do
|
637
|
+
@quilt.file?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/id.js").should be_true
|
638
|
+
end
|
639
|
+
it "read_file should return contents" do
|
640
|
+
@quilt.read_file("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/id.js").should == "document_id"
|
641
|
+
end
|
642
|
+
it "can_write? should return false" do
|
643
|
+
@quilt.can_write?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/id.js").should be_false
|
644
|
+
end
|
645
|
+
it "can_delete? should return false" do
|
646
|
+
@quilt.can_delete?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/id.js").should be_false
|
647
|
+
end
|
648
|
+
end
|
649
|
+
describe "key.js" do
|
650
|
+
it "directory? should return false" do
|
651
|
+
@quilt.directory?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/key.js").should be_false
|
652
|
+
end
|
653
|
+
it "file? should return true" do
|
654
|
+
@quilt.file?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/key.js").should be_true
|
655
|
+
end
|
656
|
+
it "read_file should return contents" do
|
657
|
+
@quilt.read_file("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/key.js").should == "This is a name"
|
658
|
+
end
|
659
|
+
it "can_write? should return false" do
|
660
|
+
@quilt.can_write?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/key.js").should be_false
|
661
|
+
end
|
662
|
+
it "can_delete? should return false" do
|
663
|
+
@quilt.can_delete?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/key.js").should be_false
|
664
|
+
end
|
665
|
+
end
|
666
|
+
describe "value.js" do
|
667
|
+
it "directory? should return false" do
|
668
|
+
@quilt.directory?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/value.js").should be_false
|
669
|
+
end
|
670
|
+
it "file? should return true" do
|
671
|
+
@quilt.file?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/value.js").should be_true
|
672
|
+
end
|
673
|
+
it "read_file should return contents" do
|
674
|
+
@quilt.read_file("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/value.js").should == ""
|
675
|
+
end
|
676
|
+
it "can_write? should return false" do
|
677
|
+
@quilt.can_write?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/value.js").should be_false
|
678
|
+
end
|
679
|
+
it "can_delete? should return false" do
|
680
|
+
@quilt.can_delete?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/value.js").should be_false
|
681
|
+
end
|
682
|
+
end
|
683
|
+
end
|
684
|
+
end
|
685
|
+
end
|
686
|
+
end
|
687
|
+
end
|
688
|
+
end
|
689
|
+
end
|
690
|
+
end
|
691
|
+
end
|