2008-08-02 09:03:54 +02:00
|
|
|
require File.dirname(__FILE__) + '/spec_helper'
|
|
|
|
|
|
|
|
describe CouchRest::FileManager do
|
|
|
|
before(:all) do
|
|
|
|
@cr = CouchRest.new(COUCHHOST)
|
|
|
|
@db = @cr.database(TESTDB)
|
|
|
|
@db.delete! rescue nil
|
|
|
|
@db = @cr.create_db(TESTDB) rescue nil
|
|
|
|
end
|
|
|
|
it "should initialize" do
|
|
|
|
@fm = CouchRest::FileManager.new(TESTDB)
|
|
|
|
@fm.should_not be_nil
|
|
|
|
end
|
|
|
|
it "should require a db name" do
|
|
|
|
lambda{CouchRest::FileManager.new}.should raise_error
|
|
|
|
end
|
|
|
|
it "should accept a db name" do
|
|
|
|
@fm = CouchRest::FileManager.new(TESTDB, 'http://localhost')
|
|
|
|
@fm.db.name.should == TESTDB
|
|
|
|
end
|
|
|
|
it "should default to localhost couchdb" do
|
|
|
|
@fm = CouchRest::FileManager.new(TESTDB)
|
|
|
|
@fm.db.host.should == 'http://localhost:5984'
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe CouchRest::FileManager, "pushing views" do
|
|
|
|
before(:all) do
|
|
|
|
@cr = CouchRest.new(COUCHHOST)
|
|
|
|
@db = @cr.database(TESTDB)
|
|
|
|
@db.delete! rescue nil
|
|
|
|
@db = @cr.create_db(TESTDB) rescue nil
|
|
|
|
|
|
|
|
@fm = CouchRest::FileManager.new(TESTDB, COUCHHOST)
|
|
|
|
@view_dir = File.dirname(__FILE__) + '/fixtures/views'
|
|
|
|
ds = @fm.push_views(@view_dir)
|
|
|
|
@design = @db.get("_design/test_view")
|
|
|
|
end
|
|
|
|
it "should create a design document for each folder" do
|
|
|
|
@design["views"].should_not be_nil
|
|
|
|
end
|
|
|
|
it "should push a map and reduce view" do
|
|
|
|
@design["views"]["test-map"].should_not be_nil
|
|
|
|
@design["views"]["test-reduce"].should_not be_nil
|
|
|
|
end
|
|
|
|
it "should push a map only view" do
|
|
|
|
@design["views"]["only-map"].should_not be_nil
|
|
|
|
@design["views"]["only-reduce"].should be_nil
|
|
|
|
end
|
|
|
|
it "should include library files" do
|
|
|
|
@design["views"]["only-map"]["map"].should include("globalLib")
|
|
|
|
@design["views"]["only-map"]["map"].should include("justThisView")
|
|
|
|
end
|
2008-08-03 21:51:17 +02:00
|
|
|
it "should not create extra design docs" do
|
|
|
|
docs = @db.documents(:startkey => '_design', :endkey => '_design/ZZZZZZ')
|
|
|
|
docs['total_rows'].should == 1
|
|
|
|
end
|
2008-08-02 09:03:54 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
describe CouchRest::FileManager, "pushing a directory with id" do
|
|
|
|
before(:all) do
|
|
|
|
@cr = CouchRest.new(COUCHHOST)
|
|
|
|
@db = @cr.database(TESTDB)
|
|
|
|
@db.delete! rescue nil
|
|
|
|
@db = @cr.create_db(TESTDB) rescue nil
|
|
|
|
|
|
|
|
@fm = CouchRest::FileManager.new(TESTDB, COUCHHOST)
|
|
|
|
@push_dir = File.dirname(__FILE__) + '/fixtures/attachments'
|
|
|
|
ds = @fm.push_directory(@push_dir, 'attached')
|
|
|
|
end
|
|
|
|
it "should create a document for the folder" do
|
|
|
|
@db.get("attached")
|
|
|
|
end
|
|
|
|
it "should make attachments" do
|
|
|
|
doc = @db.get("attached")
|
|
|
|
doc["_attachments"]["test.html"].should_not be_nil
|
|
|
|
end
|
|
|
|
it "should set the content type" do
|
|
|
|
doc = @db.get("attached")
|
|
|
|
doc["_attachments"]["test.html"]["content_type"].should == "text/html"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe CouchRest::FileManager, "pushing a directory without id" do
|
|
|
|
before(:all) do
|
|
|
|
@cr = CouchRest.new(COUCHHOST)
|
|
|
|
@db = @cr.database(TESTDB)
|
|
|
|
@db.delete! rescue nil
|
|
|
|
@db = @cr.create_db(TESTDB) rescue nil
|
|
|
|
|
|
|
|
@fm = CouchRest::FileManager.new(TESTDB, COUCHHOST)
|
|
|
|
@push_dir = File.dirname(__FILE__) + '/fixtures/attachments'
|
|
|
|
ds = @fm.push_directory(@push_dir)
|
|
|
|
end
|
|
|
|
it "should use the dirname" do
|
|
|
|
doc = @db.get("attachments")
|
|
|
|
doc["_attachments"]["test.html"].should_not be_nil
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe CouchRest::FileManager, "pushing a directory/ without id" do
|
|
|
|
before(:all) do
|
|
|
|
@cr = CouchRest.new(COUCHHOST)
|
|
|
|
@db = @cr.database(TESTDB)
|
|
|
|
@db.delete! rescue nil
|
|
|
|
@db = @cr.create_db(TESTDB) rescue nil
|
|
|
|
|
|
|
|
@fm = CouchRest::FileManager.new(TESTDB, COUCHHOST)
|
|
|
|
@push_dir = File.dirname(__FILE__) + '/fixtures/attachments/'
|
|
|
|
ds = @fm.push_directory(@push_dir)
|
|
|
|
end
|
|
|
|
it "should use the dirname" do
|
|
|
|
doc = @db.get("attachments")
|
|
|
|
doc["_attachments"]["test.html"].should_not be_nil
|
|
|
|
end
|
|
|
|
end
|