mirror of
https://github.com/discourse/discourse.git
synced 2025-05-23 06:51:27 +08:00
Support for Embeddable Comments via IFRAME
This commit is contained in:
58
spec/controllers/embed_controller_spec.rb
Normal file
58
spec/controllers/embed_controller_spec.rb
Normal file
@ -0,0 +1,58 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe EmbedController do
|
||||
|
||||
let(:host) { "eviltrout.com" }
|
||||
let(:embed_url) { "http://eviltrout.com/2013/02/10/why-discourse-uses-emberjs.html" }
|
||||
|
||||
it "is 404 without an embed_url" do
|
||||
get :best
|
||||
response.should_not be_success
|
||||
end
|
||||
|
||||
it "raises an error with a missing host" do
|
||||
SiteSetting.stubs(:embeddable_host).returns(nil)
|
||||
get :best, embed_url: embed_url
|
||||
response.should_not be_success
|
||||
end
|
||||
|
||||
context "with a host" do
|
||||
before do
|
||||
SiteSetting.stubs(:embeddable_host).returns(host)
|
||||
end
|
||||
|
||||
it "raises an error with no referer" do
|
||||
get :best, embed_url: embed_url
|
||||
response.should_not be_success
|
||||
end
|
||||
|
||||
context "success" do
|
||||
|
||||
before do
|
||||
controller.request.stubs(:referer).returns(embed_url)
|
||||
end
|
||||
|
||||
after do
|
||||
response.should be_success
|
||||
response.headers['X-Frame-Options'].should == "ALLOWALL"
|
||||
end
|
||||
|
||||
it "tells the topic retriever to work when no previous embed is found" do
|
||||
TopicEmbed.expects(:topic_id_for_embed).returns(nil)
|
||||
retriever = mock
|
||||
TopicRetriever.expects(:new).returns(retriever)
|
||||
retriever.expects(:retrieve)
|
||||
get :best, embed_url: embed_url
|
||||
end
|
||||
|
||||
it "creates a topic view when a topic_id is found" do
|
||||
TopicEmbed.expects(:topic_id_for_embed).returns(123)
|
||||
TopicView.expects(:new).with(123, nil, {best: 5})
|
||||
get :best, embed_url: embed_url
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
end
|
Reference in New Issue
Block a user