212 lines
6.5 KiB
Ruby
212 lines
6.5 KiB
Ruby
require 'spec_helper'
|
|
describe ApiJamblastersController do
|
|
render_views
|
|
|
|
let(:user) {FactoryGirl.create(:user)}
|
|
let(:jamblaster) { FactoryGirl.create(:jamblaster, user: user) }
|
|
|
|
before(:each) do
|
|
JamblasterUser.delete_all
|
|
JamblasterPairingRequest.delete_all
|
|
Jamblaster.delete_all
|
|
end
|
|
|
|
describe "get_tokens" do
|
|
before(:each) {
|
|
controller.current_user = user
|
|
}
|
|
|
|
it "works" do
|
|
get :get_tokens, {:format=>'json' }
|
|
response.status.should == 200
|
|
json = JSON.parse(response.body)
|
|
json.length.should eq(0)
|
|
|
|
# associate Jamblaster
|
|
jamblaster = FactoryGirl.create(:jamblaster, user: user)
|
|
|
|
user.jamblasters << jamblaster
|
|
user.save!
|
|
|
|
get :get_tokens, {:format=>'json' }
|
|
response.status.should == 200
|
|
json = JSON.parse(response.body)
|
|
json.length.should eq(1)
|
|
end
|
|
end
|
|
|
|
describe "start_pairing" do
|
|
|
|
before(:each) do
|
|
controller.current_user = user
|
|
user.jamblasters << jamblaster
|
|
user.save!
|
|
end
|
|
|
|
it "works" do
|
|
post :start_pairing, {:format=>'json', jbid: jamblaster.client_id, scid: 'sibling_id', key: 'sibling_key'}
|
|
json = JSON.parse(response.body)
|
|
response.status.should == 200
|
|
|
|
request = JamblasterPairingRequest.where(jamblaster_id: jamblaster.id).first
|
|
request.should_not be_nil
|
|
request.user.should eql(user)
|
|
request.sibling_key.should eq 'sibling_key'
|
|
request.sibling_client_id.should eq 'sibling_id'
|
|
end
|
|
|
|
it "returns 422 if bogus jamblaster" do
|
|
post :start_pairing, {:format=>'json', jbid: 'nada', scid: 'sibling_id', key: 'sibling_key'}
|
|
json = JSON.parse(response.body)
|
|
response.status.should == 422
|
|
json = JSON.parse(response.body)
|
|
end
|
|
|
|
it "returns 422 if restart pairing" do
|
|
|
|
end
|
|
end
|
|
|
|
describe "login" do
|
|
|
|
before(:each) do
|
|
controller.current_user = user
|
|
user.jamblasters << jamblaster
|
|
user.save!
|
|
end
|
|
|
|
it "works" do
|
|
post :start_pairing, {:format=>'json', jbid: jamblaster.client_id, scid: 'sibling_id2', key: 'sibling_key2'}
|
|
response.status.should == 200
|
|
|
|
request = JamblasterPairingRequest.where(jamblaster_client_id: jamblaster.client_id, sibling_key: 'sibling_key2', sibling_client_id: 'sibling_id2').first
|
|
request.should_not be_nil
|
|
request.user.should eql(user)
|
|
request.sibling_key.should eq 'sibling_key2'
|
|
request.sibling_client_id.should eq 'sibling_id2'
|
|
request.jamblaster_client_id.should eq jamblaster.client_id
|
|
|
|
post :login, {:format=>'json', jbid: jamblaster.client_id, serial_no: jamblaster.serial_no, scid: 'sibling_id2', key: 'sibling_key2'}
|
|
json = JSON.parse(response.body)
|
|
response.status.should == 200
|
|
json['remember_token'].should eq(user.remember_token)
|
|
end
|
|
end
|
|
|
|
describe "store_token" do
|
|
|
|
before(:each) do
|
|
controller.current_user = user
|
|
user.jamblasters << jamblaster
|
|
user.save!
|
|
end
|
|
|
|
it "works" do
|
|
post :start_pairing, {:format=>'json', jbid: jamblaster.client_id, scid: 'sibling_id3', key: 'sibling_key3'}
|
|
response.status.should == 200
|
|
|
|
request = JamblasterPairingRequest.where(jamblaster_client_id: jamblaster.client_id, sibling_key: 'sibling_key3', sibling_client_id: 'sibling_id3').first
|
|
request.should_not be_nil
|
|
request.user.should eql(user)
|
|
request.sibling_key.should eq 'sibling_key3'
|
|
request.sibling_client_id.should eq 'sibling_id3'
|
|
request.jamblaster_client_id.should eq jamblaster.client_id
|
|
|
|
post :login, {:format=>'json', jbid: jamblaster.client_id, serial_no: jamblaster.serial_no, scid: 'sibling_id3', key: 'sibling_key3'}
|
|
json = JSON.parse(response.body)
|
|
response.status.should == 200
|
|
json['remember_token'].should eq(user.remember_token)
|
|
|
|
post :store_token, {:format => 'json', vtoken: 'vtoken1', scid: 'sibling_id3', jbid: jamblaster.client_id, key: 'sibling_key3'}
|
|
json = JSON.parse(response.body)
|
|
response.status.should == 200
|
|
json['id'].should eq(jamblaster.id)
|
|
end
|
|
end
|
|
|
|
describe "pair" do
|
|
before(:each) do
|
|
controller.current_user = user
|
|
user.jamblasters << jamblaster
|
|
user.save!
|
|
end
|
|
|
|
it "works" do
|
|
|
|
post :start_pairing, {:format=>'json', jbid: jamblaster.client_id, scid: 'sibling_id4', key: 'sibling_key4'}
|
|
response.status.should == 200
|
|
|
|
request = JamblasterPairingRequest.where(jamblaster_client_id: jamblaster.client_id, sibling_key: 'sibling_key4', sibling_client_id: 'sibling_id4').first
|
|
request.should_not be_nil
|
|
request.user.should eql(user)
|
|
request.sibling_key.should eq 'sibling_key4'
|
|
request.sibling_client_id.should eq 'sibling_id4'
|
|
request.jamblaster_client_id.should eq jamblaster.client_id
|
|
|
|
post :login, {:format=>'json', jbid: jamblaster.client_id, serial_no: jamblaster.serial_no, scid: 'sibling_id4', key: 'sibling_key4'}
|
|
json = JSON.parse(response.body)
|
|
response.status.should == 200
|
|
json['remember_token'].should eq(user.remember_token)
|
|
|
|
post :store_token, {:format => 'json', vtoken: 'vtoken2', scid: 'sibling_id4', jbid: jamblaster.client_id, key: 'sibling_key4'}
|
|
json = JSON.parse(response.body)
|
|
response.status.should == 200
|
|
json['id'].should eq(jamblaster.id)
|
|
|
|
get :get_tokens, {:format=>'json' }
|
|
response.status.should == 200
|
|
json = JSON.parse(response.body)
|
|
json.length.should eq(1)
|
|
vtoken = json[0]["vtoken"]
|
|
vtoken.should eq("vtoken2")
|
|
|
|
post :pair, {:format => 'json', vtoken: 'vtoken2', scid: 'sibling_id4', jbid: jamblaster.client_id}
|
|
response.status.should == 200
|
|
json = JSON.parse(response.body)
|
|
json["id"].should eq jamblaster.id
|
|
end
|
|
end
|
|
|
|
describe "logged in" do
|
|
before(:each) do
|
|
controller.current_user = user
|
|
end
|
|
|
|
it "get_tokens" do
|
|
get :get_tokens, {:format=>'json' }
|
|
response.status.should == 200
|
|
end
|
|
|
|
it "start_pairing" do
|
|
post :start_pairing, {:format=>'json'}
|
|
response.status.should == 422
|
|
end
|
|
|
|
it "pair" do
|
|
post :pair, {:format=>'json'}
|
|
response.status.should == 404
|
|
end
|
|
end
|
|
|
|
describe "not logged in" do
|
|
before(:each) do
|
|
controller.current_user = nil
|
|
end
|
|
|
|
it "get_tokens" do
|
|
get :get_tokens, {:format=>'json'}
|
|
response.status.should == 403
|
|
end
|
|
|
|
it "start_pairing" do
|
|
post :start_pairing, {:format=>'json'}
|
|
response.status.should == 403
|
|
end
|
|
|
|
it "pair" do
|
|
post :pair, {:format=>'json'}
|
|
response.status.should == 403
|
|
end
|
|
end
|
|
end
|