83 lines
1.8 KiB
Ruby
83 lines
1.8 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe ExcerptController do
|
|
|
|
describe 'show' do
|
|
it 'raises an error without the url param' do
|
|
lambda { xhr :get, :show }.should raise_error(Discourse::InvalidParameters)
|
|
end
|
|
|
|
it 'returns 404 with a non-existant url' do
|
|
xhr :get, :show, url: 'http://madeup.com/url'
|
|
response.status.should == 404
|
|
end
|
|
|
|
it 'returns 404 from an invalid url' do
|
|
xhr :get, :show, url: 'asdfasdf'
|
|
response.status.should == 404
|
|
end
|
|
|
|
describe 'user excerpt' do
|
|
|
|
before do
|
|
@user = Fabricate(:user)
|
|
@url = "http://test.host/users/#{@user.username}"
|
|
xhr :get, :show, url: @url
|
|
end
|
|
|
|
it 'returns a valid status' do
|
|
response.should be_success
|
|
end
|
|
|
|
it 'returns an excerpt type for the forum topic' do
|
|
parsed = JSON.parse(response.body)
|
|
parsed['type'].should == 'User'
|
|
end
|
|
|
|
end
|
|
|
|
describe 'forum topic excerpt' do
|
|
|
|
before do
|
|
@post = Fabricate(:post)
|
|
@url = "http://test.host#{@post.topic.relative_url}"
|
|
xhr :get, :show, url: @url
|
|
end
|
|
|
|
it 'returns a valid status' do
|
|
response.should be_success
|
|
end
|
|
|
|
it 'returns an excerpt type for the forum topic' do
|
|
parsed = JSON.parse(response.body)
|
|
parsed['type'].should == 'Post'
|
|
end
|
|
|
|
end
|
|
|
|
describe 'post excerpt' do
|
|
|
|
before do
|
|
@post = Fabricate(:post)
|
|
@url = "http://test.host#{@post.topic.relative_url}/1"
|
|
xhr :get, :show, url: @url
|
|
end
|
|
|
|
it 'returns a valid status' do
|
|
response.should be_success
|
|
end
|
|
|
|
it 'returns an excerpt type for the forum topic' do
|
|
parsed = JSON.parse(response.body)
|
|
parsed['type'].should == 'Post'
|
|
end
|
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|