76 lines
2.6 KiB
Ruby
76 lines
2.6 KiB
Ruby
|
require_relative '../../acceptance_helper'
|
||
|
|
||
|
feature "API 1.0 maps management" do
|
||
|
|
||
|
before(:all) do
|
||
|
Capybara.current_driver = :rack_test
|
||
|
@user = create_user({:username => 'test'})
|
||
|
end
|
||
|
|
||
|
before(:each) do
|
||
|
bypass_named_maps
|
||
|
delete_user_data @user
|
||
|
end
|
||
|
|
||
|
after(:all) do
|
||
|
bypass_named_maps
|
||
|
@user.destroy
|
||
|
end
|
||
|
|
||
|
scenario "Create a new map" do
|
||
|
table = create_table(:user_id => @user.id)
|
||
|
post_json v1_maps_url(:host => CartoDB.hostname.sub('http://', ''), :api_key => api_key), { :table_id => table.id } do |response|
|
||
|
response.status.should be_success
|
||
|
table.refresh
|
||
|
table.map.should == Map[response.body[:id]]
|
||
|
end
|
||
|
end
|
||
|
|
||
|
scenario "Create a new google map" do
|
||
|
table = create_table(:user_id => @user.id)
|
||
|
data = { table_id: table.id, center: "[41.68932225997044,-13.4912109375]", zoom: 5, minZoom: 0, maxZoom: 20, provider: "googlemaps", id: 24, user_id: 2,bounding_box_sw: "[0,0]", bounding_box_ne: "[0,0]" }
|
||
|
|
||
|
post_json v1_maps_url(:host => CartoDB.hostname.sub('http://', ''), :api_key => api_key), data do |response|
|
||
|
response.status.should be_success
|
||
|
table.refresh
|
||
|
table.map.should == Map[response.body[:id]]
|
||
|
response.body[:center].should == "[41.68932225997044,-13.4912109375]"
|
||
|
response.body[:zoom].should == 5
|
||
|
response.body[:bounding_box_sw].should == "[0,0]"
|
||
|
response.body[:bounding_box_ne].should == "[0,0]"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
scenario "Can't create a map associated to another user's table" do
|
||
|
another_user = create_user({:username => 'waldo'})
|
||
|
table = create_table(:user_id => another_user.id)
|
||
|
data = { table_id: table.id }
|
||
|
|
||
|
post_json v1_maps_url(:host => CartoDB.hostname.sub('http://', ''), :api_key => api_key), data do |response|
|
||
|
response.status.should_not be_success
|
||
|
end
|
||
|
|
||
|
another_user.destroy
|
||
|
end
|
||
|
|
||
|
scenario "Update a map" do
|
||
|
table = create_table(:user_id => @user.id)
|
||
|
map = create_map(:user_id => @user.id, :table_id => table.id)
|
||
|
|
||
|
put_json v1_map_url(:host => CartoDB.hostname.sub('http://', ''), :api_key => api_key, :id => map.id), {:center => "center_value"} do |response|
|
||
|
response.status.should be_success
|
||
|
response.body[:id].should == map.id
|
||
|
response.body[:center].should == "center_value"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
scenario "Drop a map" do
|
||
|
table = create_table(:user_id => @user.id)
|
||
|
map = create_map(:user_id => @user.id, :table_id => table.id)
|
||
|
|
||
|
delete_json v1_map_url(:host => CartoDB.hostname.sub('http://', ''), :api_key => api_key, :id => map.id) do |response|
|
||
|
response.status.should eql(204)
|
||
|
end
|
||
|
end
|
||
|
end
|