Pulled in spec refactor, thanks blackxored
This commit is contained in:
parent
b3c63a3cc0
commit
a64d8943b4
15 changed files with 227 additions and 183 deletions
|
|
@ -84,7 +84,7 @@ describe AspectsController do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "#create" do
|
describe "#create" do
|
||||||
describe "with valid params" do
|
context "with valid params" do
|
||||||
it "creates an aspect" do
|
it "creates an aspect" do
|
||||||
@user.aspects.count.should == 2
|
@user.aspects.count.should == 2
|
||||||
post :create, "aspect" => {"name" => "new aspect"}
|
post :create, "aspect" => {"name" => "new aspect"}
|
||||||
|
|
@ -95,7 +95,7 @@ describe AspectsController do
|
||||||
response.should redirect_to(aspect_path(Aspect.find_by_name("new aspect")))
|
response.should redirect_to(aspect_path(Aspect.find_by_name("new aspect")))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
describe "with invalid params" do
|
context "with invalid params" do
|
||||||
it "does not create an aspect" do
|
it "does not create an aspect" do
|
||||||
@user.aspects.count.should == 2
|
@user.aspects.count.should == 2
|
||||||
post :create, "aspect" => {"name" => ""}
|
post :create, "aspect" => {"name" => ""}
|
||||||
|
|
|
||||||
|
|
@ -7,14 +7,14 @@ require 'spec_helper'
|
||||||
describe CommentsController do
|
describe CommentsController do
|
||||||
render_views
|
render_views
|
||||||
|
|
||||||
let!(:user) { make_user }
|
let!(:user1) { make_user }
|
||||||
let!(:aspect) { user.aspects.create(:name => "AWESOME!!") }
|
let!(:aspect1) { user1.aspects.create(:name => "AWESOME!!") }
|
||||||
|
|
||||||
let!(:user2) { make_user }
|
let!(:user2) { make_user }
|
||||||
let!(:aspect2) { user2.aspects.create(:name => "WIN!!") }
|
let!(:aspect2) { user2.aspects.create(:name => "WIN!!") }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
sign_in :user, user
|
sign_in :user, user1
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#create' do
|
describe '#create' do
|
||||||
|
|
@ -24,7 +24,7 @@ describe CommentsController do
|
||||||
}
|
}
|
||||||
context "on my own post" do
|
context "on my own post" do
|
||||||
before do
|
before do
|
||||||
@post = user.post :status_message, :message => 'GIANTS', :to => aspect.id
|
@post = user1.post :status_message, :message => 'GIANTS', :to => aspect1.id
|
||||||
end
|
end
|
||||||
it 'responds to format js' do
|
it 'responds to format js' do
|
||||||
post :create, comment_hash.merge(:format => 'js')
|
post :create, comment_hash.merge(:format => 'js')
|
||||||
|
|
@ -35,7 +35,7 @@ describe CommentsController do
|
||||||
|
|
||||||
context "on a post from a contact" do
|
context "on a post from a contact" do
|
||||||
before do
|
before do
|
||||||
connect_users(user, aspect, user2, aspect2)
|
connect_users(user1, aspect1, user2, aspect2)
|
||||||
@post = user2.post :status_message, :message => 'GIANTS', :to => aspect2.id
|
@post = user2.post :status_message, :message => 'GIANTS', :to => aspect2.id
|
||||||
end
|
end
|
||||||
it 'comments' do
|
it 'comments' do
|
||||||
|
|
@ -46,10 +46,10 @@ describe CommentsController do
|
||||||
new_user = make_user
|
new_user = make_user
|
||||||
comment_hash[:person_id] = new_user.person.id.to_s
|
comment_hash[:person_id] = new_user.person.id.to_s
|
||||||
post :create, comment_hash
|
post :create, comment_hash
|
||||||
Comment.find_by_text(comment_hash[:text]).person_id.should == user.person.id
|
Comment.find_by_text(comment_hash[:text]).person_id.should == user1.person.id
|
||||||
end
|
end
|
||||||
it "doesn't overwrite id" do
|
it "doesn't overwrite id" do
|
||||||
old_comment = user.comment("hello", :on => @post)
|
old_comment = user1.comment("hello", :on => @post)
|
||||||
comment_hash[:id] = old_comment.id
|
comment_hash[:id] = old_comment.id
|
||||||
post :create, comment_hash
|
post :create, comment_hash
|
||||||
old_comment.reload.text.should == 'hello'
|
old_comment.reload.text.should == 'hello'
|
||||||
|
|
@ -60,7 +60,7 @@ describe CommentsController do
|
||||||
@post = user2.post :status_message, :message => 'GIANTS', :to => aspect2.id
|
@post = user2.post :status_message, :message => 'GIANTS', :to => aspect2.id
|
||||||
end
|
end
|
||||||
it 'posts no comment' do
|
it 'posts no comment' do
|
||||||
user.should_receive(:comment).exactly(0).times
|
user1.should_not_receive(:comment)
|
||||||
post :create, comment_hash
|
post :create, comment_hash
|
||||||
response.code.should == '406'
|
response.code.should == '406'
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -14,12 +14,12 @@ describe HomeController do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#show' do
|
describe '#show' do
|
||||||
it 'should show a login link if no user is not logged in' do
|
it 'shows a login link if no user is not logged in' do
|
||||||
get :show
|
get :show
|
||||||
response.body.should include("login")
|
response.body.should include("login")
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should redirect to aspects index if user is logged in' do
|
it 'redirects to aspects index if user is logged in' do
|
||||||
sign_in @user
|
sign_in @user
|
||||||
get :show
|
get :show
|
||||||
response.should redirect_to aspects_path
|
response.should redirect_to aspects_path
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,8 @@ describe InvitationsController do
|
||||||
|
|
||||||
render_views
|
render_views
|
||||||
|
|
||||||
let!(:user) {make_user}
|
let!(:user) { make_user }
|
||||||
let!(:aspect){user.aspects.create(:name => "WIN!!")}
|
let!(:aspect) { user.aspects.create(:name => "WIN!!") }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
request.env["devise.mapping"] = Devise.mappings[:user]
|
request.env["devise.mapping"] = Devise.mappings[:user]
|
||||||
|
|
@ -26,23 +26,26 @@ describe InvitationsController do
|
||||||
request.env["HTTP_REFERER"]= 'http://test.host/cats/foo'
|
request.env["HTTP_REFERER"]= 'http://test.host/cats/foo'
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should call the resque job Jobs::InviteUser' do
|
it 'calls the resque job Jobs::InviteUser' do
|
||||||
Resque.should_receive(:enqueue)
|
Resque.should_receive(:enqueue)
|
||||||
post :create, :user => @invite
|
post :create, :user => @invite
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'can handle a comma seperated list of emails' do
|
it 'handles a comma seperated list of emails' do
|
||||||
Resque.should_receive(:enqueue).twice()
|
Resque.should_receive(:enqueue).twice()
|
||||||
post :create, :user => @invite.merge(:email => "foofoofoofoo@example.com, mbs@gmail.com")
|
post :create, :user => @invite.merge(
|
||||||
|
:email => "foofoofoofoo@example.com, mbs@gmail.com")
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'can handle a comma seperated list of emails with whitespace' do
|
it 'handles a comma seperated list of emails with whitespace' do
|
||||||
Resque.should_receive(:enqueue).twice()
|
Resque.should_receive(:enqueue).twice()
|
||||||
post :create, :user => @invite.merge(:email => "foofoofoofoo@example.com , mbs@gmail.com")
|
post :create, :user => @invite.merge(
|
||||||
|
:email => "foofoofoofoo@example.com , mbs@gmail.com")
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'displays a message that tells you how many invites were sent, and which REJECTED' do
|
it 'displays a message that tells the user how many invites were sent, and which REJECTED' do
|
||||||
post :create, :user => @invite.merge(:email => "mbs@gmail.com, foo@bar.com, foo.com, lala@foo, cool@bar.com")
|
post :create, :user => @invite.merge(
|
||||||
|
:email => "mbs@gmail.com, foo@bar.com, foo.com, lala@foo, cool@bar.com")
|
||||||
flash[:error].should_not be_empty
|
flash[:error].should_not be_empty
|
||||||
flash[:error].should =~ /foo\.com/
|
flash[:error].should =~ /foo\.com/
|
||||||
flash[:error].should =~ /lala@foo/
|
flash[:error].should =~ /lala@foo/
|
||||||
|
|
@ -75,7 +78,7 @@ describe InvitationsController do
|
||||||
end
|
end
|
||||||
context 'success' do
|
context 'success' do
|
||||||
let(:invited) {User.find_by_username(@accept_params[:user][:username])}
|
let(:invited) {User.find_by_username(@accept_params[:user][:username])}
|
||||||
it 'creates user' do
|
it 'creates a user' do
|
||||||
put :update, @accept_params
|
put :update, @accept_params
|
||||||
invited.should_not be_nil
|
invited.should_not be_nil
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ require 'spec_helper'
|
||||||
describe PeopleController do
|
describe PeopleController do
|
||||||
render_views
|
render_views
|
||||||
|
|
||||||
let(:user) { Factory(:user) }
|
let(:user) { make_user }
|
||||||
let!(:aspect) { user.aspects.create(:name => "lame-os") }
|
let!(:aspect) { user.aspects.create(:name => "lame-os") }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
|
|
@ -119,19 +119,27 @@ describe PeopleController do
|
||||||
end
|
end
|
||||||
describe '#index' do
|
describe '#index' do
|
||||||
before do
|
before do
|
||||||
@eugene = Factory.create(:person, :profile => {:first_name => "Eugene", :last_name => "w"})
|
@eugene = Factory.create(:person,
|
||||||
@korth = Factory.create(:person, :profile => {:first_name => "Evan", :last_name => "Korth"})
|
:profile => {:first_name => "Eugene",
|
||||||
|
:last_name => "w"})
|
||||||
|
@korth = Factory.create(:person,
|
||||||
|
:profile => {:first_name => "Evan",
|
||||||
|
:last_name => "Korth"})
|
||||||
end
|
end
|
||||||
|
|
||||||
it "assigns hashes" do
|
it "assigns hashes" do
|
||||||
eugene2 = Factory.create(:person, :profile => {:first_name => "Eugene", :last_name => "w"})
|
eugene2 = Factory.create(:person,
|
||||||
|
:profile => {:first_name => "Eugene",
|
||||||
|
:last_name => "w"})
|
||||||
get :index, :q => "Eu"
|
get :index, :q => "Eu"
|
||||||
people = assigns[:hashes].map{|h| h[:person]}
|
people = assigns[:hashes].map{|h| h[:person]}
|
||||||
people.should include @eugene
|
people.should include @eugene
|
||||||
people.should include eugene2
|
people.should include eugene2
|
||||||
end
|
end
|
||||||
it "assigns people" do
|
it "assigns people" do
|
||||||
eugene2 = Factory.create(:person, :profile => {:first_name => "Eugene", :last_name => "w"})
|
eugene2 = Factory.create(:person,
|
||||||
|
:profile => {:first_name => "Eugene",
|
||||||
|
:last_name => "w"})
|
||||||
get :index, :q => "Eu"
|
get :index, :q => "Eu"
|
||||||
assigns[:people].should =~ [@eugene, eugene2]
|
assigns[:people].should =~ [@eugene, eugene2]
|
||||||
end
|
end
|
||||||
|
|
@ -162,7 +170,7 @@ describe PeopleController do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#show' do
|
describe '#show' do
|
||||||
it 'should go to the current_user show page' do
|
it 'goes to the current_user show page' do
|
||||||
get :show, :id => user.person.id
|
get :show, :id => user.person.id
|
||||||
response.should be_success
|
response.should be_success
|
||||||
end
|
end
|
||||||
|
|
@ -180,12 +188,12 @@ describe PeopleController do
|
||||||
response.should be_success
|
response.should be_success
|
||||||
end
|
end
|
||||||
|
|
||||||
it "redirects on an invalid id" do
|
it "redirects to #index if the id is invalid" do
|
||||||
get :show, :id => 'delicious'
|
get :show, :id => 'delicious'
|
||||||
response.should redirect_to people_path
|
response.should redirect_to people_path
|
||||||
end
|
end
|
||||||
|
|
||||||
it "redirects on a nonexistent person" do
|
it "redirects to #index if no person is found" do
|
||||||
get :show, :id => user.id
|
get :show, :id => user.id
|
||||||
response.should redirect_to people_path
|
response.should redirect_to people_path
|
||||||
end
|
end
|
||||||
|
|
@ -256,7 +264,8 @@ describe PeopleController do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'does not overwrite the profile diaspora handle' do
|
it 'does not overwrite the profile diaspora handle' do
|
||||||
handle_params = {:id => user.person.id, :profile => {:diaspora_handle => 'abc@a.com'}}
|
handle_params = {:id => user.person.id,
|
||||||
|
:profile => {:diaspora_handle => 'abc@a.com'} }
|
||||||
put :update, handle_params
|
put :update, handle_params
|
||||||
user.person.reload.profile[:diaspora_handle].should_not == 'abc@a.com'
|
user.person.reload.profile[:diaspora_handle].should_not == 'abc@a.com'
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,17 @@ require 'spec_helper'
|
||||||
describe PhotosController do
|
describe PhotosController do
|
||||||
render_views
|
render_views
|
||||||
|
|
||||||
let(:user) {make_user}
|
let(:user) {make_user}
|
||||||
let(:user2) {make_user}
|
let(:user2) {make_user}
|
||||||
|
|
||||||
let!(:aspect) {user.aspects.create(:name => 'winners')}
|
let!(:aspect) { user.aspects.create(:name => 'winners') }
|
||||||
let(:aspect2) {user2.aspects.create(:name => 'winners')}
|
let(:aspect2) { user2.aspects.create(:name => 'winners') }
|
||||||
|
|
||||||
let(:filename) {'button.png'}
|
let(:filename) { 'button.png' }
|
||||||
let(:fixture_name) {File.join(File.dirname(__FILE__), '..', 'fixtures', filename)}
|
let(:fixture_name) { File.join(File.dirname(__FILE__), '..', 'fixtures', filename) }
|
||||||
let(:image) {File.open(fixture_name)}
|
let(:image) { File.open(fixture_name) }
|
||||||
let!(:photo){ user.post(:photo, :user_file => image, :to => aspect.id)}
|
let!(:photo) { user.post(:photo, :user_file => image, :to => aspect.id) }
|
||||||
let!(:photo2){ user2.post(:photo, :user_file => image, :to => aspect2.id)}
|
let!(:photo2) { user2.post(:photo, :user_file => image, :to => aspect2.id) }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
connect_users(user, aspect, user2, aspect2)
|
connect_users(user, aspect, user2, aspect2)
|
||||||
|
|
@ -27,11 +27,11 @@ describe PhotosController do
|
||||||
describe '#create' do
|
describe '#create' do
|
||||||
before do
|
before do
|
||||||
@controller.stub!(:file_handler).and_return(image)
|
@controller.stub!(:file_handler).and_return(image)
|
||||||
@params = {:photo => {:user_file => image, :aspect_ids => "all"}}
|
@params = {:photo => {:user_file => image, :aspect_ids => "all"} }
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'can make a photo' do
|
it 'can make a photo' do
|
||||||
proc{
|
lambda {
|
||||||
post :create, @params
|
post :create, @params
|
||||||
}.should change(Photo, :count).by(1)
|
}.should change(Photo, :count).by(1)
|
||||||
end
|
end
|
||||||
|
|
@ -54,28 +54,28 @@ describe PhotosController do
|
||||||
get :index, :person_id => user2.person.id.to_s
|
get :index, :person_id => user2.person.id.to_s
|
||||||
|
|
||||||
assigns[:person].should == user2.person
|
assigns[:person].should == user2.person
|
||||||
assigns[:posts].should == []
|
assigns[:posts].should be_empty
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#show' do
|
describe '#show' do
|
||||||
it 'assigns the photo based on the photo id' do
|
it 'assigns the photo based on the photo id' do
|
||||||
get :show, :id => photo.id
|
get :show, :id => photo.id
|
||||||
response.code.should == "200"
|
response.status.should == 200
|
||||||
|
|
||||||
assigns[:photo].should == photo
|
assigns[:photo].should == photo
|
||||||
assigns[:ownership].should == true
|
assigns[:ownership].should be_true
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#edit' do
|
describe '#edit' do
|
||||||
it 'should let you edit a photo' do
|
it 'lets the user edit a photo' do
|
||||||
get :edit, :id => photo.id
|
get :edit, :id => photo.id
|
||||||
response.code.should == "200"
|
response.status.should == 200
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should not let you edit a photo that is not yours' do
|
it 'does not let the user edit a photo that is not his' do
|
||||||
get :edit, :id => photo2.id
|
get :edit, :id => photo2.id
|
||||||
response.should redirect_to(:action => :index, :person_id => user.person.id.to_s)
|
response.should redirect_to(:action => :index, :person_id => user.person.id.to_s)
|
||||||
end
|
end
|
||||||
|
|
@ -83,35 +83,34 @@ describe PhotosController do
|
||||||
|
|
||||||
|
|
||||||
describe '#destroy' do
|
describe '#destroy' do
|
||||||
it 'should let me delete my photos' do
|
it 'allows the user to delete his photos' do
|
||||||
delete :destroy, :id => photo.id
|
delete :destroy, :id => photo.id
|
||||||
Photo.find_by_id(photo.id).should be nil
|
Photo.find_by_id(photo.id).should be_nil
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'will not let you destory posts you do not own' do
|
it 'will not let you destory posts you do not own' do
|
||||||
delete :destroy, :id => photo2.id
|
delete :destroy, :id => photo2.id
|
||||||
Photo.find_by_id(photo2.id).should_not be nil
|
Photo.find_by_id(photo2.id).should be_true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "#update" do
|
describe "#update" do
|
||||||
it "should update the caption of a photo" do
|
it "updates the caption of a photo" do
|
||||||
put :update, :id => photo.id, :photo => { :caption => "now with lasers!"}
|
put :update, :id => photo.id, :photo => { :caption => "now with lasers!" }
|
||||||
photo.reload.caption.should == "now with lasers!"
|
photo.reload.caption.should == "now with lasers!"
|
||||||
end
|
end
|
||||||
|
|
||||||
it "doesn't overwrite random attributes" do
|
it "doesn't overwrite random attributes" do
|
||||||
new_user = Factory.create :user
|
new_user = Factory.create :user
|
||||||
params = { :caption => "now with lasers!", :person_id => new_user.id}
|
params = { :caption => "now with lasers!", :person_id => new_user.id }
|
||||||
put :update, :id => photo.id, :photo => params
|
put :update, :id => photo.id, :photo => params
|
||||||
photo.reload.person_id.should == user.person.id
|
photo.reload.person_id.should == user.person.id
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should redirect if you do not have access to the post' do
|
it 'redirects if you do not have access to the post' do
|
||||||
params = { :caption => "now with lasers!"}
|
params = { :caption => "now with lasers!" }
|
||||||
put :update, :id => photo2.id, :photo => params
|
put :update, :id => photo2.id, :photo => params
|
||||||
response.should redirect_to(:action => :index, :person_id => user.person.id.to_s)
|
response.should redirect_to(:action => :index, :person_id => user.person.id.to_s)
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ require 'spec_helper'
|
||||||
describe PublicsController do
|
describe PublicsController do
|
||||||
render_views
|
render_views
|
||||||
|
|
||||||
let(:user) { make_user }
|
let(:user) { make_user }
|
||||||
let(:person) { Factory(:person) }
|
let(:person) { Factory(:person) }
|
||||||
|
|
||||||
describe '#receive' do
|
describe '#receive' do
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
# licensed under the Affero General Public License version 3 or later. See
|
# licensed under the Affero General Public License version 3 or later. See
|
||||||
# the COPYRIGHT file.
|
# the COPYRIGHT file.
|
||||||
|
|
||||||
require File.join(File.dirname(__FILE__), "..", "spec_helper")
|
require 'spec_helper'
|
||||||
|
|
||||||
describe RegistrationsController do
|
describe RegistrationsController do
|
||||||
include Devise::TestHelpers
|
include Devise::TestHelpers
|
||||||
|
|
@ -11,10 +11,13 @@ describe RegistrationsController do
|
||||||
|
|
||||||
before do
|
before do
|
||||||
request.env["devise.mapping"] = Devise.mappings[:user]
|
request.env["devise.mapping"] = Devise.mappings[:user]
|
||||||
@valid_params = {"user" => {"username" => "jdoe",
|
@valid_params = {:user => {
|
||||||
"email" => "jdoe@example.com",
|
:username => "jdoe",
|
||||||
"password" => "password",
|
:email => "jdoe@example.com",
|
||||||
"password_confirmation" => "password"}}
|
:password => "password",
|
||||||
|
:password_confirmation => "password"
|
||||||
|
}
|
||||||
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#check_registrations_open!' do
|
describe '#check_registrations_open!' do
|
||||||
|
|
@ -24,12 +27,12 @@ describe RegistrationsController do
|
||||||
after do
|
after do
|
||||||
APP_CONFIG[:registrations_closed] = false
|
APP_CONFIG[:registrations_closed] = false
|
||||||
end
|
end
|
||||||
it 'stops a #new request' do
|
it 'redirects #new to the login page' do
|
||||||
get :new
|
get :new
|
||||||
flash[:error].should == I18n.t('registrations.closed')
|
flash[:error].should == I18n.t('registrations.closed')
|
||||||
response.should redirect_to new_user_session_path
|
response.should redirect_to new_user_session_path
|
||||||
end
|
end
|
||||||
it 'stops a #create request' do
|
it 'redirects #create to the login page' do
|
||||||
post :create, @valid_params
|
post :create, @valid_params
|
||||||
flash[:error].should == I18n.t('registrations.closed')
|
flash[:error].should == I18n.t('registrations.closed')
|
||||||
response.should redirect_to new_user_session_path
|
response.should redirect_to new_user_session_path
|
||||||
|
|
@ -43,11 +46,13 @@ describe RegistrationsController do
|
||||||
User.stub!(:build).and_return(user)
|
User.stub!(:build).and_return(user)
|
||||||
end
|
end
|
||||||
it "creates a user" do
|
it "creates a user" do
|
||||||
lambda { get :create, @valid_params }.should change(User, :count).by(1)
|
lambda {
|
||||||
|
get :create, @valid_params
|
||||||
|
}.should change(User, :count).by(1)
|
||||||
end
|
end
|
||||||
it "assigns @user" do
|
it "assigns @user" do
|
||||||
get :create, @valid_params
|
get :create, @valid_params
|
||||||
assigns(:user).should_not be_nil
|
assigns(:user).should be_true
|
||||||
end
|
end
|
||||||
it "sets the flash" do
|
it "sets the flash" do
|
||||||
get :create, @valid_params
|
get :create, @valid_params
|
||||||
|
|
@ -61,7 +66,7 @@ describe RegistrationsController do
|
||||||
context "with invalid parameters" do
|
context "with invalid parameters" do
|
||||||
before do
|
before do
|
||||||
@invalid_params = @valid_params
|
@invalid_params = @valid_params
|
||||||
@invalid_params["user"]["password_confirmation"] = "baddword"
|
@invalid_params[:user][:password_confirmation] = "baddword"
|
||||||
end
|
end
|
||||||
it "does not create a user" do
|
it "does not create a user" do
|
||||||
lambda { get :create, @invalid_params }.should_not change(User, :count)
|
lambda { get :create, @invalid_params }.should_not change(User, :count)
|
||||||
|
|
|
||||||
|
|
@ -23,24 +23,28 @@ describe RequestsController do
|
||||||
describe '#destroy' do
|
describe '#destroy' do
|
||||||
before do
|
before do
|
||||||
@other_user.send_contact_request_to(@user.person, @other_user.aspects.first)
|
@other_user.send_contact_request_to(@user.person, @other_user.aspects.first)
|
||||||
@user.reload # so it can find its pending requests.
|
|
||||||
@friend_request = Request.to(@user.person).first
|
@friend_request = Request.to(@user.person).first
|
||||||
end
|
end
|
||||||
describe 'when accepting a contact request' do
|
describe 'when accepting a contact request' do
|
||||||
it "succeeds" do
|
it "succeeds" do
|
||||||
xhr :delete, :destroy, "accept" => "true", "aspect_id" => @user.aspects.first.id.to_s, "id" => @friend_request.id.to_s
|
xhr :delete, :destroy,
|
||||||
|
:accept => "true",
|
||||||
|
:aspect_id => @user.aspects.first.id.to_s,
|
||||||
|
:id => @friend_request.id.to_s
|
||||||
response.should redirect_to(aspect_path(@user.aspects.first))
|
response.should redirect_to(aspect_path(@user.aspects.first))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
describe 'when ignoring a contact request' do
|
describe 'when ignoring a contact request' do
|
||||||
it "succeeds" do
|
it "succeeds" do
|
||||||
xhr :delete, :destroy, "id" => @friend_request.id.to_s
|
xhr :delete, :destroy,
|
||||||
|
:id => @friend_request.id.to_s
|
||||||
response.should be_success
|
response.should be_success
|
||||||
end
|
end
|
||||||
it "removes the request object" do
|
it "removes the request object" do
|
||||||
lambda {
|
lambda {
|
||||||
xhr :delete, :destroy, "id" => @friend_request.id.to_s
|
xhr :delete, :destroy,
|
||||||
}.should change(Request, 'count').by(-1)
|
:id => @friend_request.id.to_s
|
||||||
|
}.should change(Request, :count).by(-1)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -48,8 +52,10 @@ describe RequestsController do
|
||||||
describe '#create' do
|
describe '#create' do
|
||||||
context 'valid new request' do
|
context 'valid new request' do
|
||||||
before do
|
before do
|
||||||
@params = {:request => {:to => @other_user.diaspora_handle,
|
@params = {:request => {
|
||||||
:into => @user.aspects[0].id}}
|
:to => @other_user.diaspora_handle,
|
||||||
|
:into => @user.aspects[0].id
|
||||||
|
}}
|
||||||
end
|
end
|
||||||
it 'creates a contact' do
|
it 'creates a contact' do
|
||||||
@user.contact_for(@other_user).should be_nil
|
@user.contact_for(@other_user).should be_nil
|
||||||
|
|
@ -63,21 +69,19 @@ describe RequestsController do
|
||||||
it 'does not persist a Request' do
|
it 'does not persist a Request' do
|
||||||
lambda {
|
lambda {
|
||||||
post :create, @params
|
post :create, @params
|
||||||
}.should_not change(Request,:count)
|
}.should_not change(Request, :count)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
it 'autoaccepts and when sending a request to someone who sent me a request' do
|
it 'autoaccepts and when sending a request to someone who sent me a request' do
|
||||||
@other_user.send_contact_request_to(@user.person, @other_user.aspects[0])
|
@other_user.send_contact_request_to(@user.person, @other_user.aspects[0])
|
||||||
Request.to(@user).count.should == 1
|
|
||||||
@user.contact_for(@other_user.person).should be_nil
|
|
||||||
|
|
||||||
post(:create, :request => {
|
post(:create, :request => {
|
||||||
:to => @other_user.diaspora_handle,
|
:to => @other_user.diaspora_handle,
|
||||||
:into => @user.aspects[0].id}
|
:into => @user.aspects[0].id}
|
||||||
)
|
)
|
||||||
Request.to(@user).count.should == 0
|
Request.to(@user).first.should be_nil
|
||||||
@user.contact_for(@other_user.person).should_not be_nil
|
@user.contact_for(@other_user.person).should be_true
|
||||||
@user.aspects[0].contacts.all(:person_id => @other_user.person.id).should_not be_nil
|
@user.aspects[0].contacts.all(:person_id => @other_user.person.id).should be_true
|
||||||
end
|
end
|
||||||
|
|
||||||
it "redirects when requesting to be contacts with yourself" do
|
it "redirects when requesting to be contacts with yourself" do
|
||||||
|
|
|
||||||
|
|
@ -6,22 +6,24 @@ require 'spec_helper'
|
||||||
|
|
||||||
describe ServicesController do
|
describe ServicesController do
|
||||||
render_views
|
render_views
|
||||||
let(:user) { make_user }
|
let(:user) { make_user }
|
||||||
let!(:aspect) { user.aspects.create(:name => "lame-os") }
|
let!(:aspect) { user.aspects.create(:name => "lame-os") }
|
||||||
|
|
||||||
|
|
||||||
let(:mock_access_token) { Object.new }
|
let(:mock_access_token) { Object.new }
|
||||||
|
|
||||||
let(:omniauth_auth) {{ 'provider' => 'twitter', 'uid' => '2',
|
let(:omniauth_auth) {
|
||||||
'user_info' => { 'nickname' => 'grimmin' },
|
{ 'provider' => 'twitter',
|
||||||
'credentials' => { 'token' => 'tokin', 'secret' =>"not_so_much" }
|
'uid' => '2',
|
||||||
}}
|
'user_info' => { 'nickname' => 'grimmin' },
|
||||||
|
'credentials' => { 'token' => 'tokin', 'secret' =>"not_so_much" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
before do
|
before do
|
||||||
sign_in :user, user
|
sign_in :user, user
|
||||||
@controller.stub!(:current_user).and_return(user)
|
@controller.stub!(:current_user).and_return(user)
|
||||||
mock_access_token.stub!(:token).and_return("12345")
|
mock_access_token.stub!(:token => "12345", :secret => "56789")
|
||||||
mock_access_token.stub!(:secret).and_return("56789")
|
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#index' do
|
describe '#index' do
|
||||||
|
|
@ -39,17 +41,19 @@ describe ServicesController do
|
||||||
describe '#create' do
|
describe '#create' do
|
||||||
it 'creates a new OmniauthService' do
|
it 'creates a new OmniauthService' do
|
||||||
request.env['omniauth.auth'] = omniauth_auth
|
request.env['omniauth.auth'] = omniauth_auth
|
||||||
lambda{post :create}.should change(user.services, :count).by(1)
|
lambda{
|
||||||
|
post :create
|
||||||
|
}.should change(user.services, :count).by(1)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should redirect to getting started if the user still getting started' do
|
it 'redirects to getting started if the user is getting started' do
|
||||||
user.getting_started = true
|
user.getting_started = true
|
||||||
request.env['omniauth.auth'] = omniauth_auth
|
request.env['omniauth.auth'] = omniauth_auth
|
||||||
post :create
|
post :create
|
||||||
response.should redirect_to getting_started_path(:step => 3)
|
response.should redirect_to getting_started_path(:step => 3)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should redirect to services url' do
|
it 'redirects to services url' do
|
||||||
user.getting_started = false
|
user.getting_started = false
|
||||||
request.env['omniauth.auth'] = omniauth_auth
|
request.env['omniauth.auth'] = omniauth_auth
|
||||||
post :create
|
post :create
|
||||||
|
|
@ -66,9 +70,14 @@ describe ServicesController do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#destroy' do
|
describe '#destroy' do
|
||||||
let!(:service1) {a = Factory(:service); user.services << a; a}
|
before do
|
||||||
it 'should destroy a service of a users with the id' do
|
@service1 = Factory.create(:service)
|
||||||
lambda{delete :destroy, :id => service1.id.to_s}.should change(user.services, :count).by(-1)
|
user.services << @service1
|
||||||
|
end
|
||||||
|
it 'destroys a service selected by id' do
|
||||||
|
lambda{
|
||||||
|
delete :destroy, :id => @service1.id
|
||||||
|
}.should change(user.services, :count).by(-1)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -17,11 +17,6 @@ describe SocketsController do
|
||||||
@controller = SocketsController.new
|
@controller = SocketsController.new
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should unstub the websockets' do
|
|
||||||
Diaspora::WebSocket.initialize_channels
|
|
||||||
@controller.class.should == SocketsController
|
|
||||||
end
|
|
||||||
|
|
||||||
describe 'actionhash' do
|
describe 'actionhash' do
|
||||||
before do
|
before do
|
||||||
@aspect = @user.aspects.create(:name => "losers")
|
@aspect = @user.aspects.create(:name => "losers")
|
||||||
|
|
@ -29,13 +24,13 @@ describe SocketsController do
|
||||||
@fixture_name = File.dirname(__FILE__) + '/../fixtures/button.png'
|
@fixture_name = File.dirname(__FILE__) + '/../fixtures/button.png'
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should actionhash posts' do
|
it 'actionhashes posts' do
|
||||||
json = @controller.action_hash(@user.id, @message)
|
json = @controller.action_hash(@user.id, @message)
|
||||||
json.include?(@message.message).should be_true
|
json.include?(@message.message).should be_true
|
||||||
json.include?('status_message').should be_true
|
json.include?('status_message').should be_true
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should actionhash retractions' do
|
it 'actionhashes retractions' do
|
||||||
retraction = Retraction.for @message
|
retraction = Retraction.for @message
|
||||||
json = @controller.action_hash(@user.id, retraction)
|
json = @controller.action_hash(@user.id, retraction)
|
||||||
json.include?('retraction').should be_true
|
json.include?('retraction').should be_true
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,17 @@ require 'spec_helper'
|
||||||
describe StatusMessagesController do
|
describe StatusMessagesController do
|
||||||
render_views
|
render_views
|
||||||
|
|
||||||
let!(:user) { make_user }
|
let!(:user1) { make_user }
|
||||||
let!(:aspect) { user.aspects.create(:name => "AWESOME!!") }
|
let!(:aspect1) { user1.aspects.create(:name => "AWESOME!!") }
|
||||||
|
|
||||||
let!(:user2) { make_user }
|
let!(:user2) { make_user }
|
||||||
let!(:aspect2) { user2.aspects.create(:name => "WIN!!") }
|
let!(:aspect2) { user2.aspects.create(:name => "WIN!!") }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
connect_users(user, aspect, user2, aspect2)
|
connect_users(user1, aspect1, user2, aspect2)
|
||||||
request.env["HTTP_REFERER"] = ""
|
request.env["HTTP_REFERER"] = ""
|
||||||
sign_in :user, user
|
sign_in :user, user1
|
||||||
@controller.stub!(:current_user).and_return(user)
|
@controller.stub!(:current_user).and_return(user1)
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#show' do
|
describe '#show' do
|
||||||
|
|
@ -26,30 +26,33 @@ describe StatusMessagesController do
|
||||||
@url="http://www.youtube.com/watch?v=#{@video_id}&a=GxdCwVVULXdvEBKmx_f5ywvZ0zZHHHDU&list=ML&playnext=1"
|
@url="http://www.youtube.com/watch?v=#{@video_id}&a=GxdCwVVULXdvEBKmx_f5ywvZ0zZHHHDU&list=ML&playnext=1"
|
||||||
end
|
end
|
||||||
it 'renders posts with youtube urls' do
|
it 'renders posts with youtube urls' do
|
||||||
message = user.build_post :status_message, :message => @url, :to => aspect.id
|
message = user1.build_post :status_message, :message => @url, :to => aspect1.id
|
||||||
message[:youtube_titles]= {@video_id => "title"}
|
message[:youtube_titles]= {@video_id => "title"}
|
||||||
message.save!
|
message.save!
|
||||||
user.add_to_streams(message, aspect.id)
|
user1.add_to_streams(message, aspect1.id)
|
||||||
user.dispatch_post message, :to => aspect.id
|
user1.dispatch_post message, :to => aspect1.id
|
||||||
|
|
||||||
get :show, :id => message.id
|
get :show, :id => message.id
|
||||||
response.body.should match /Youtube: title/
|
response.body.should match /Youtube: title/
|
||||||
end
|
end
|
||||||
it 'renders posts with comments with youtube urls' do
|
it 'renders posts with comments with youtube urls' do
|
||||||
message = user.post :status_message, :message => "Respond to this with a video!", :to => aspect.id
|
message = user1.post :status_message, :message => "Respond to this with a video!", :to => aspect1.id
|
||||||
@comment = user.comment "none", :on => message
|
@comment = user1.comment "none", :on => message
|
||||||
@comment.text = @url
|
@comment.text = @url
|
||||||
@comment[:youtube_titles][@video_id] = "title"
|
@comment[:youtube_titles][@video_id] = "title"
|
||||||
@comment.save!
|
@comment.save!
|
||||||
|
|
||||||
get :show, :id => message.id
|
get :show, :id => message.id
|
||||||
response.body.should match /Youtube: title/
|
response.body.should match /Youtube: title/
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
describe '#create' do
|
describe '#create' do
|
||||||
let(:status_message_hash) {
|
let(:status_message_hash) {
|
||||||
{:status_message =>{
|
{ :status_message => {
|
||||||
:public =>"true",
|
:public =>"true",
|
||||||
:message =>"facebook, is that you?",
|
:message =>"facebook, is that you?",
|
||||||
:aspect_ids =>"#{aspect.id}"}}
|
:aspect_ids =>"#{aspect1.id}" }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
it 'responds to js requests' do
|
it 'responds to js requests' do
|
||||||
post :create, status_message_hash.merge(:format => 'js')
|
post :create, status_message_hash.merge(:format => 'js')
|
||||||
|
|
@ -57,16 +60,18 @@ describe StatusMessagesController do
|
||||||
end
|
end
|
||||||
|
|
||||||
it "doesn't overwrite person_id" do
|
it "doesn't overwrite person_id" do
|
||||||
new_user = make_user
|
status_message_hash[:status_message][:person_id] = user2.person.id
|
||||||
status_message_hash[:status_message][:person_id] = new_user.person.id
|
|
||||||
post :create, status_message_hash
|
post :create, status_message_hash
|
||||||
StatusMessage.find_by_message(status_message_hash[:status_message][:message]).person_id.should == user.person.id
|
new_message = StatusMessage.find_by_message(status_message_hash[:status_message][:message])
|
||||||
|
new_message.person_id.should == user1.person.id
|
||||||
end
|
end
|
||||||
|
|
||||||
it "doesn't overwrite id" do
|
it "doesn't overwrite id" do
|
||||||
old_status_message = user.post(:status_message, :message => "hello", :to => aspect.id)
|
old_status_message = user1.post(:status_message, :message => "hello", :to => aspect1.id)
|
||||||
status_message_hash[:status_message][:id] = old_status_message.id
|
status_message_hash[:status_message][:id] = old_status_message.id
|
||||||
lambda {post :create, status_message_hash}.should raise_error /failed save/
|
lambda {
|
||||||
|
post :create, status_message_hash
|
||||||
|
}.should raise_error /failed save/
|
||||||
old_status_message.reload.message.should == 'hello'
|
old_status_message.reload.message.should == 'hello'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -74,8 +79,8 @@ describe StatusMessagesController do
|
||||||
fixture_filename = 'button.png'
|
fixture_filename = 'button.png'
|
||||||
fixture_name = File.join(File.dirname(__FILE__), '..', 'fixtures', fixture_filename)
|
fixture_name = File.join(File.dirname(__FILE__), '..', 'fixtures', fixture_filename)
|
||||||
|
|
||||||
photo1 = user.build_post(:photo, :user_file=> File.open(fixture_name), :to => aspect.id)
|
photo1 = user1.build_post(:photo, :user_file=> File.open(fixture_name), :to => aspect1.id)
|
||||||
photo2 = user.build_post(:photo, :user_file=> File.open(fixture_name), :to => aspect.id)
|
photo2 = user1.build_post(:photo, :user_file=> File.open(fixture_name), :to => aspect1.id)
|
||||||
|
|
||||||
photo1.save!
|
photo1.save!
|
||||||
photo2.save!
|
photo2.save!
|
||||||
|
|
@ -83,28 +88,27 @@ describe StatusMessagesController do
|
||||||
hash = status_message_hash
|
hash = status_message_hash
|
||||||
hash[:photos] = [photo1.id.to_s, photo2.id.to_s]
|
hash[:photos] = [photo1.id.to_s, photo2.id.to_s]
|
||||||
|
|
||||||
user.should_receive(:dispatch_post).exactly(3).times
|
user1.should_receive(:dispatch_post).exactly(3).times
|
||||||
post :create, hash
|
post :create, hash
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
describe '#destroy' do
|
describe '#destroy' do
|
||||||
let!(:message) {user.post(:status_message, :message => "hey", :to => aspect.id)}
|
let!(:message) {user1.post(:status_message, :message => "hey", :to => aspect1.id)}
|
||||||
let!(:message2) {user2.post(:status_message, :message => "hey", :to => aspect2.id)}
|
let!(:message2) {user2.post(:status_message, :message => "hey", :to => aspect2.id)}
|
||||||
|
|
||||||
it 'should let me delete my photos' do
|
it 'let a user delete his photos' do
|
||||||
delete :destroy, :id => message.id
|
delete :destroy, :id => message.id
|
||||||
StatusMessage.find_by_id(message.id).should be_nil
|
StatusMessage.find_by_id(message.id).should be_nil
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'will not let you destroy posts visible to you' do
|
it 'will not let you destroy posts visible to you' do
|
||||||
delete :destroy, :id => message2.id
|
delete :destroy, :id => message2.id
|
||||||
StatusMessage.find_by_id(message2.id).should_not be_nil
|
StatusMessage.find_by_id(message2.id).should be_true
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'will not let you destory posts you do not own' do
|
it 'will not let you destory posts you do not own' do
|
||||||
delete :destroy, :id => message2.id
|
delete :destroy, :id => message2.id
|
||||||
StatusMessage.find_by_id(message2.id).should_not be_nil
|
StatusMessage.find_by_id(message2.id).should be_true
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ require 'spec_helper'
|
||||||
describe UsersController do
|
describe UsersController do
|
||||||
render_views
|
render_views
|
||||||
|
|
||||||
let(:user) { make_user }
|
let(:user) { make_user }
|
||||||
let!(:aspect) { user.aspects.create(:name => "lame-os") }
|
let!(:aspect) { user.aspects.create(:name => "lame-os") }
|
||||||
|
|
||||||
let!(:old_password) { user.encrypted_password }
|
let!(:old_password) { user.encrypted_password }
|
||||||
|
|
@ -18,7 +18,7 @@ describe UsersController do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#export' do
|
describe '#export' do
|
||||||
it 'should return an xml file' do
|
it 'returns an xml file' do
|
||||||
get :export
|
get :export
|
||||||
response.header["Content-Type"].should include "application/xml"
|
response.header["Content-Type"].should include "application/xml"
|
||||||
end
|
end
|
||||||
|
|
@ -26,36 +26,50 @@ describe UsersController do
|
||||||
|
|
||||||
describe '#update' do
|
describe '#update' do
|
||||||
it "doesn't overwrite random attributes" do
|
it "doesn't overwrite random attributes" do
|
||||||
params = {:diaspora_handle => "notreal@stuff.com"}
|
params = { :id => user.id,
|
||||||
proc{ put 'update', :id => user.id, "user" => params }.should_not change(user, :diaspora_handle)
|
:user => { :diaspora_handle => "notreal@stuff.com" } }
|
||||||
|
lambda {
|
||||||
|
put :update, params
|
||||||
|
}.should_not change(user, :diaspora_handle)
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'should allow the user to update their password' do
|
context 'password updates' do
|
||||||
it 'should change a users password ' do
|
it 'allows a user to change his password' do
|
||||||
put("update", :id => user.id, "user"=> {"password" => "foobaz", 'password_confirmation' => "foobaz"})
|
put(:update, :id => user.id, :user =>
|
||||||
|
{ :password => "foobaz",
|
||||||
|
:password_confirmation => "foobaz" }
|
||||||
|
)
|
||||||
user.reload
|
user.reload
|
||||||
user.encrypted_password.should_not == old_password
|
user.encrypted_password.should_not == old_password
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should not change a password if they do not match' do
|
it 'requires a matching password confirmation' do
|
||||||
put("update", :id => user.id, "user"=> {"password" => "foobarz", 'password_confirmation' => "not_the_same"})
|
put(:update, :id => user.id, :user =>
|
||||||
|
{ :password => "foobarz",
|
||||||
|
:password_confirmation => "not_the_same"}
|
||||||
|
)
|
||||||
user.reload
|
user.reload
|
||||||
user.encrypted_password.should == old_password
|
user.encrypted_password.should == old_password
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should not update if the password fields are left blank' do
|
it 'does not update if the password fields are left blank' do
|
||||||
put("update", :id => user.id, "user"=> {"password" => "", 'password_confirmation' => ""})
|
put(:update, :id => user.id, :user =>
|
||||||
|
{ :password => "",
|
||||||
|
:password_confirmation => ""}
|
||||||
|
)
|
||||||
user.reload
|
user.reload
|
||||||
user.encrypted_password.should == old_password
|
user.encrypted_password.should == old_password
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'language' do
|
describe 'language' do
|
||||||
it 'should allow user to change his language' do
|
it 'allow the user to change his language' do
|
||||||
user.language = 'en'
|
old_language = 'en'
|
||||||
|
user.language = old_language
|
||||||
user.save
|
user.save
|
||||||
old_language = user.language
|
put(:update, :id => user.id, :user =>
|
||||||
put("update", :id => user.id, "user" => {"language" => "fr"})
|
{ :language => "fr"}
|
||||||
|
)
|
||||||
user.reload
|
user.reload
|
||||||
user.language.should_not == old_language
|
user.language.should_not == old_language
|
||||||
end
|
end
|
||||||
|
|
@ -65,7 +79,7 @@ describe UsersController do
|
||||||
describe '#edit' do
|
describe '#edit' do
|
||||||
it "returns a 200" do
|
it "returns a 200" do
|
||||||
get 'edit', :id => user.id
|
get 'edit', :id => user.id
|
||||||
response.code.should == "200"
|
response.status.should == 200
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -12,29 +12,30 @@ def r_str
|
||||||
end
|
end
|
||||||
|
|
||||||
Factory.define :profile do |p|
|
Factory.define :profile do |p|
|
||||||
p.sequence(:first_name){|n| "Robert#{n}#{r_str}"}
|
p.sequence(:first_name) { |n| "Robert#{n}#{r_str}" }
|
||||||
p.sequence(:last_name){|n| "Grimm#{n}#{r_str}"}
|
p.sequence(:last_name) { |n| "Grimm#{n}#{r_str}" }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
Factory.define :person do |p|
|
Factory.define :person do |p|
|
||||||
p.sequence(:diaspora_handle) {|n| "bob-person-#{n}#{r_str}@aol.com"}
|
p.sequence(:diaspora_handle) { |n| "bob-person-#{n}#{r_str}@aol.com" }
|
||||||
p.sequence(:url) {|n| "http://google-#{n}#{r_str}.com/"}
|
p.sequence(:url) { |n| "http://google-#{n}#{r_str}.com/" }
|
||||||
p.profile Factory.create(:profile, :first_name => "eugene", :last_name => "weinstien")
|
p.profile Factory.create(:profile, :first_name => "eugene", :last_name => "weinstien")
|
||||||
|
|
||||||
p.serialized_public_key OpenSSL::PKey::RSA.generate(1024).public_key.export
|
p.serialized_public_key OpenSSL::PKey::RSA.generate(1024).public_key.export
|
||||||
end
|
end
|
||||||
|
|
||||||
Factory.define :user do |u|
|
Factory.define :user do |u|
|
||||||
u.sequence(:username) {|n| "bob#{n}#{r_str}"}
|
u.sequence(:username) { |n| "bob#{n}#{r_str}" }
|
||||||
u.sequence(:email) {|n| "bob#{n}#{r_str}@pivotallabs.com"}
|
u.sequence(:email) { |n| "bob#{n}#{r_str}@pivotallabs.com" }
|
||||||
u.password "bluepin7"
|
u.password "bluepin7"
|
||||||
u.password_confirmation "bluepin7"
|
u.password_confirmation { |u| u.password }
|
||||||
u.serialized_private_key OpenSSL::PKey::RSA.generate(1024).export
|
u.serialized_private_key OpenSSL::PKey::RSA.generate(1024).export
|
||||||
u.after_build do |user|
|
u.after_build do |user|
|
||||||
user.person = Factory.build(:person, :profile => Factory.create(:profile), :owner_id => user._id,
|
user.person = Factory.build(:person, :profile => Factory.create(:profile),
|
||||||
:serialized_public_key => user.encryption_key.public_key.export,
|
:owner_id => user._id,
|
||||||
:diaspora_handle => "#{user.username}@#{APP_CONFIG[:pod_url].gsub(/(https?:|www\.)\/\//, '').chop!}")
|
:serialized_public_key => user.encryption_key.public_key.export,
|
||||||
|
:diaspora_handle => "#{user.username}@#{APP_CONFIG[:pod_url].gsub(/(https?:|www\.)\/\//, '').chop!}")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -47,7 +48,7 @@ Factory.define :aspect do |aspect|
|
||||||
end
|
end
|
||||||
|
|
||||||
Factory.define :status_message do |m|
|
Factory.define :status_message do |m|
|
||||||
m.sequence(:message) {|n| "jimmy's #{n} whales"}
|
m.sequence(:message) { |n| "jimmy's #{n} whales" }
|
||||||
m.person
|
m.person
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe 'making sure the spec runner works' do
|
describe 'making sure the spec runner works' do
|
||||||
it 'should factory create a user with a person saved' do
|
it 'factoy creates a user with a person saved' do
|
||||||
user = make_user
|
user = make_user
|
||||||
loaded_user = User.first(:id => user.id)
|
loaded_user = User.first(:id => user.id)
|
||||||
loaded_user.person.owner_id.should == user.id
|
loaded_user.person.owner_id.should == user.id
|
||||||
|
|
@ -16,30 +16,31 @@ describe 'making sure the spec runner works' do
|
||||||
User.count.should == 0
|
User.count.should == 0
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns a user on fixed_user' do
|
describe '#make_user' do
|
||||||
new_user = make_user
|
it 'returns a user on' do
|
||||||
new_user.is_a?(User).should be_true
|
new_user = make_user
|
||||||
User.count.should == 1
|
new_user.is_a?(User).should be_true
|
||||||
|
User.count.should == 1
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'returns a different user the second time' do
|
||||||
|
new_user = make_user
|
||||||
|
second_user = make_user
|
||||||
|
|
||||||
|
User.count.should == 2
|
||||||
|
new_user.id.should_not == second_user.id
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns a different user on the second fixed_user' do
|
|
||||||
new_user = make_user
|
|
||||||
second_user = make_user
|
|
||||||
|
|
||||||
User.count.should == 2
|
|
||||||
new_user.id.should_not == second_user.id
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'factories' do
|
describe 'factories' do
|
||||||
describe 'build' do
|
describe 'build' do
|
||||||
it 'does not save a built user' do
|
it 'does not save a built user' do
|
||||||
Factory.build(:user).persisted?.should be_false
|
Factory.build(:user).should_not be_persisted
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'does not save a built person' do
|
it 'does not save a built person' do
|
||||||
Factory.build(:person).persisted?.should be_false
|
Factory.build(:person).should_not be_persisted
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -58,7 +59,7 @@ describe 'making sure the spec runner works' do
|
||||||
contact.should_not be_nil
|
contact.should_not be_nil
|
||||||
@user1.contacts.include?(contact).should be_true
|
@user1.contacts.include?(contact).should be_true
|
||||||
@aspect1.contacts.include?(contact).should be_true
|
@aspect1.contacts.include?(contact).should be_true
|
||||||
contact.aspects.include?( @aspect1 ).should be true
|
contact.aspects.include?(@aspect1).should be_true
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'connects the second user to the first' do
|
it 'connects the second user to the first' do
|
||||||
|
|
@ -66,7 +67,7 @@ describe 'making sure the spec runner works' do
|
||||||
contact.should_not be_nil
|
contact.should_not be_nil
|
||||||
@user2.contacts.include?(contact).should be_true
|
@user2.contacts.include?(contact).should be_true
|
||||||
@aspect2.contacts.include?(contact).should be_true
|
@aspect2.contacts.include?(contact).should be_true
|
||||||
contact.aspects.include?( @aspect2 ).should be true
|
contact.aspects.include?(@aspect2).should be_true
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'allows posting after running' do
|
it 'allows posting after running' do
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue