2013-06-11 00:27:13 +08:00
|
|
|
require 'spec_helper'
|
|
|
|
|
|
|
|
describe Oneboxer::StackExchangeOnebox do
|
|
|
|
describe '#translate_url' do
|
|
|
|
let(:question) { '15622543' }
|
|
|
|
let(:api_url) {
|
|
|
|
"http://api.stackexchange.com/2.1/questions/#{question}?site=#{site}"
|
|
|
|
}
|
|
|
|
|
|
|
|
context 'when the question is from Stack Overflow' do
|
|
|
|
let(:site) { 'stackoverflow' }
|
|
|
|
|
|
|
|
it 'returns the correct api url for an expanded url' do
|
|
|
|
onebox = described_class.new([
|
|
|
|
"http://#{site}.com/",
|
|
|
|
"questions/#{question}/discourse-ruby-2-0-rails-4"
|
|
|
|
].join)
|
|
|
|
|
|
|
|
expect(onebox.translate_url).to eq api_url
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'returns the correct api url for a share url' do
|
|
|
|
onebox = described_class.new("http://#{site}.com/q/#{question}")
|
|
|
|
|
|
|
|
expect(onebox.translate_url).to eq api_url
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'when the question is from Super User' do
|
|
|
|
let(:site) { 'superuser' }
|
|
|
|
|
|
|
|
it 'returns the correct api url' do
|
|
|
|
onebox = described_class.new("http://#{site}.com/q/#{question}")
|
|
|
|
|
|
|
|
expect(onebox.translate_url).to eq api_url
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2013-06-12 10:23:24 +08:00
|
|
|
context 'when the question is from Meta Stack Overflow' do
|
|
|
|
let(:site) { 'meta.stackoverflow' }
|
|
|
|
|
|
|
|
it 'returns the correct api url' do
|
|
|
|
onebox = described_class.new("http://meta.stackoverflow.com/q/#{question}")
|
|
|
|
|
|
|
|
expect(onebox.translate_url).to eq api_url
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'when the question is from a Meta Stack Exchange subdomain' do
|
|
|
|
let(:site) { 'meta.gamedev' }
|
|
|
|
|
|
|
|
it 'returns the correct api url' do
|
|
|
|
onebox = described_class.new("http://meta.gamedev.stackexchange.com/q/#{question}")
|
|
|
|
|
|
|
|
expect(onebox.translate_url).to eq api_url
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
2013-06-11 00:27:13 +08:00
|
|
|
context 'when the question is from a Stack Exchange subdomain' do
|
|
|
|
let(:site) { 'gamedev' }
|
|
|
|
|
|
|
|
it 'returns the correct api url' do
|
|
|
|
onebox = described_class.new([
|
|
|
|
"http://#{site}.stackexchange.com/",
|
|
|
|
"questions/#{question}/how-to-prevent-the-too-awesome-to-use-syndrome"
|
|
|
|
].join)
|
|
|
|
|
|
|
|
expect(onebox.translate_url).to eq api_url
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|