fix ResharesController / StatusMessage controller spec; remove another js response
This commit is contained in:
parent
719e265b68
commit
4fabbe93a5
4 changed files with 19 additions and 51 deletions
|
|
@ -1,6 +1,6 @@
|
|||
class ResharesController < ApplicationController
|
||||
before_filter :authenticate_user!
|
||||
respond_to :js, :json
|
||||
respond_to :json
|
||||
|
||||
def create
|
||||
@reshare = current_user.build_post(:reshare, :root_guid => params[:root_guid])
|
||||
|
|
@ -9,9 +9,6 @@ class ResharesController < ApplicationController
|
|||
current_user.dispatch_post(@reshare, :url => post_url(@reshare), :additional_subscribers => @reshare.root.author)
|
||||
end
|
||||
|
||||
respond_to do |format|
|
||||
format.html { respond_with @reshare }
|
||||
format.json{ render :json => @reshare.as_api_response(:backbone), :status => 201 }
|
||||
end
|
||||
render :json => @reshare.as_api_response(:backbone), :status => 201
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,9 +0,0 @@
|
|||
<% if @reshare.persisted? %>
|
||||
$('.stream_element#<%=params[:root_guid]%>').addClass('reshared');
|
||||
ContentUpdater.addPostToStream(
|
||||
"<%= escape_javascript(render(:partial => 'shared/stream_element', :locals => {:post => @reshare }))=%>"
|
||||
);
|
||||
<% else %>
|
||||
Diaspora.page.flashMessages.render({success:false,
|
||||
notice: "<%= reshare_error_message(@reshare) %>"});
|
||||
<% end %>
|
||||
|
|
@ -1,38 +1,45 @@
|
|||
require 'spec_helper'
|
||||
describe ResharesController do
|
||||
|
||||
describe ResharesController do
|
||||
describe '#create' do
|
||||
let(:post_request!) {
|
||||
post :create, :format => :json, :root_guid => @post_guid
|
||||
}
|
||||
|
||||
before do
|
||||
@post_guid = Factory(:status_message, :public => true).guid
|
||||
end
|
||||
|
||||
it 'requires authentication' do
|
||||
post :create, :format => :js
|
||||
post_request!
|
||||
response.should_not be_success
|
||||
end
|
||||
|
||||
context 'with an authenticated user' do
|
||||
before do
|
||||
sign_in :user, bob
|
||||
@post_guid = Factory(:status_message, :public => true).guid
|
||||
@controller.stub(:current_user).and_return(bob)
|
||||
end
|
||||
|
||||
it 'succeeds' do
|
||||
post :create, :format => :js, :root_guid => @post_guid
|
||||
response.should be_success
|
||||
post_request!
|
||||
end
|
||||
|
||||
it 'creates a reshare' do
|
||||
expect{
|
||||
post :create, :format => :js, :root_guid => @post_guid
|
||||
post_request!
|
||||
}.should change(Reshare, :count).by(1)
|
||||
end
|
||||
|
||||
it 'after save, calls add to streams' do
|
||||
bob.should_receive(:add_to_streams)
|
||||
post :create, :format => :js, :root_guid => @post_guid
|
||||
post_request!
|
||||
end
|
||||
|
||||
it 'calls dispatch' do
|
||||
bob.should_receive(:dispatch_post).with(anything, hash_including(:additional_subscribers))
|
||||
post :create, :format => :js, :root_guid => @post_guid
|
||||
post_request!
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -53,33 +53,6 @@ describe StatusMessagesController do
|
|||
post :create, status_message_hash
|
||||
end
|
||||
|
||||
context 'js requests' do
|
||||
it 'responds' do
|
||||
post :create, status_message_hash.merge(:format => 'js')
|
||||
response.status.should == 201
|
||||
end
|
||||
|
||||
it 'responds with json' do
|
||||
post :create, status_message_hash.merge(:format => 'js')
|
||||
json = JSON.parse(response.body)
|
||||
json['post_id'].should_not be_nil
|
||||
json['html'].should_not be_nil
|
||||
end
|
||||
|
||||
it 'saves the html as a fixture', :fixture => true do
|
||||
post :create, status_message_hash.merge(:format => 'js')
|
||||
json = JSON.parse(response.body)
|
||||
save_fixture(json['html'], "created_status_message")
|
||||
end
|
||||
|
||||
it 'escapes XSS' do
|
||||
xss = "<script> alert('hi browser') </script>"
|
||||
post :create, status_message_hash.merge(:format => 'js', :text => xss)
|
||||
json = JSON.parse(response.body)
|
||||
json['html'].should_not =~ /<script>/
|
||||
end
|
||||
end
|
||||
|
||||
it 'takes public in aspect ids' do
|
||||
post :create, status_message_hash.merge(:aspect_ids => ['public'])
|
||||
response.status.should == 302
|
||||
|
|
|
|||
Loading…
Reference in a new issue