@ -8,6 +8,10 @@ RSpec.describe FetchLinkCardService do
stub_request ( :get , 'http://example.xn--fiqs8s/' ) . to_return ( request_fixture ( 'idn.txt' ) )
stub_request ( :head , 'http://example.com/sjis' ) . to_return ( status : 200 , headers : { 'Content-Type' = > 'text/html' } )
stub_request ( :get , 'http://example.com/sjis' ) . to_return ( request_fixture ( 'sjis.txt' ) )
stub_request ( :head , 'http://example.com/sjis_with_wrong_charset' ) . to_return ( status : 200 , headers : { 'Content-Type' = > 'text/html' } )
stub_request ( :get , 'http://example.com/sjis_with_wrong_charset' ) . to_return ( request_fixture ( 'sjis_with_wrong_charset.txt' ) )
stub_request ( :head , 'http://example.com/koi8-r' ) . to_return ( status : 200 , headers : { 'Content-Type' = > 'text/html' } )
stub_request ( :get , 'http://example.com/koi8-r' ) . to_return ( request_fixture ( 'koi8-r.txt' ) )
stub_request ( :head , 'https://github.com/qbi/WannaCry' ) . to_return ( status : 404 )
subject . call ( status )
@ -27,6 +31,25 @@ RSpec.describe FetchLinkCardService do
it 'works with SJIS' do
expect ( a_request ( :get , 'http://example.com/sjis' ) ) . to have_been_made . at_least_once
expect ( status . preview_card . title ) . to eq ( " SJISのページ " )
end
end
context do
let ( :status ) { Fabricate ( :status , text : 'Check out http://example.com/sjis_with_wrong_charset' ) }
it 'works with SJIS even with wrong charset header' do
expect ( a_request ( :get , 'http://example.com/sjis_with_wrong_charset' ) ) . to have_been_made . at_least_once
expect ( status . preview_card . title ) . to eq ( " SJISのページ " )
end
end
context do
let ( :status ) { Fabricate ( :status , text : 'Check out http://example.com/koi8-r' ) }
it 'works with koi8-r' do
expect ( a_request ( :get , 'http://example.com/koi8-r' ) ) . to have_been_made . at_least_once
expect ( status . preview_card . title ) . to eq ( " Московя начинаетъ только въ XVI ст. привлекать внимане иностранцевъ. " )
end
end
end