spec/twitter/user_spec.rb in twitter-5.8.0 vs spec/twitter/user_spec.rb in twitter-5.9.0

- old
+ new

@@ -42,39 +42,81 @@ expect(user.created?).to be false end end describe '#description_uris' do - it 'returns an array of Entity::URIs when entities are set' do + it 'returns an array of Entity::URIs when description URI entities are set' do urls_array = [ { - :url => 'http://example.com/t.co', + :url => 'https://t.co/L2xIBazMPf', :expanded_url => 'http://example.com/expanded', :display_url => 'example.com/expanded…', :indices => [10, 33], } ] user = Twitter::User.new(:id => 7_505_382, :entities => {:description => {:urls => urls_array}}) expect(user.description_uris).to be_an Array expect(user.description_uris.first).to be_a Twitter::Entity::URI expect(user.description_uris.first.indices).to eq([10, 33]) - expect(user.description_uris.first.display_uri).to eq('example.com/expanded…') + expect(user.description_uris.first.expanded_uri).to be_an Addressable::URI end it 'is empty when not set' do user = Twitter::User.new(:id => 7_505_382, :entities => {:description => {:urls => []}}) expect(user.description_uris).to be_empty end end + describe '#description_uris?' do + it 'returns true when the tweet includes description URI entities' do + urls_array = [ + { + :url => 'https://t.co/L2xIBazMPf', + :expanded_url => 'http://example.com/expanded', + :display_url => 'example.com/expanded…', + :indices => [10, 33], + } + ] + user = Twitter::User.new(:id => 7_505_382, :entities => {:description => {:urls => urls_array}}) + expect(user.description_uris?).to be true + end + it 'returns false when no entities are present' do + user = Twitter::User.new(:id => 7_505_382, :entities => {:description => {:urls => []}}) + expect(user.description_uris?).to be false + end + end + + describe '#entities?' do + it 'returns true if there are entities set' do + urls_array = [ + { + :url => 'https://t.co/L2xIBazMPf', + :expanded_url => 'http://example.com/expanded', + :display_url => 'example.com/expanded…', + :indices => [10, 33], + } + ] + user = Twitter::User.new(:id => 7_505_382, :entities => {:description => {:urls => urls_array}}) + expect(user.entities?).to be true + end + it 'returns false if there are blank lists of entities set' do + user = Twitter::User.new(:id => 7_505_382, :entities => {:description => {:urls => []}}) + expect(user.entities?).to be false + end + it 'returns false if there are no entities set' do + user = Twitter::User.new(:id => 7_505_382) + expect(user.entities?).to be false + end + end + describe '#profile_banner_uri' do it 'accepts utf8 urls' do user = Twitter::User.new(:id => 7_505_382, :profile_banner_url => 'https://si0.twimg.com/profile_banners/7_505_382/1348266581©_normal.png') - expect(user.profile_banner_uri).to be_a Addressable::URI + expect(user.profile_banner_uri).to be_an Addressable::URI end it 'returns a URI when profile_banner_url is set' do user = Twitter::User.new(:id => 7_505_382, :profile_banner_url => 'https://si0.twimg.com/profile_banners/7_505_382/1348266581') - expect(user.profile_banner_uri).to be_a Addressable::URI + expect(user.profile_banner_uri).to be_an Addressable::URI end it 'returns nil when profile_banner_uri is not set' do user = Twitter::User.new(:id => 7_505_382) expect(user.profile_banner_uri).to be_nil end @@ -115,15 +157,15 @@ end describe '#profile_banner_uri_https' do it 'accepts utf8 urls' do user = Twitter::User.new(:id => 7_505_382, :profile_banner_url => 'https://si0.twimg.com/profile_banners/7_505_382/1348266581©_normal.png') - expect(user.profile_banner_uri_https).to be_a Addressable::URI + expect(user.profile_banner_uri_https).to be_an Addressable::URI end it 'returns a URI when profile_banner_url is set' do user = Twitter::User.new(:id => 7_505_382, :profile_banner_url => 'https://si0.twimg.com/profile_banners/7_505_382/1348266581') - expect(user.profile_banner_uri_https).to be_a Addressable::URI + expect(user.profile_banner_uri_https).to be_an Addressable::URI end it 'returns nil when created_at is not set' do user = Twitter::User.new(:id => 7_505_382) expect(user.profile_banner_uri_https).to be_nil end @@ -175,15 +217,15 @@ end describe '#profile_image_uri' do it 'accepts utf8 urls' do user = Twitter::User.new(:id => 7_505_382, :profile_image_url_https => 'https://si0.twimg.com/profile_images/7_505_382/1348266581©_normal.png') - expect(user.profile_image_uri).to be_a Addressable::URI + expect(user.profile_image_uri).to be_an Addressable::URI end it 'returns a URI when profile_image_url_https is set' do user = Twitter::User.new(:id => 7_505_382, :profile_image_url_https => 'https://a0.twimg.com/profile_images/1759857427/image1326743606_normal.png') - expect(user.profile_image_uri).to be_a Addressable::URI + expect(user.profile_image_uri).to be_an Addressable::URI end it 'returns nil when created_at is not set' do user = Twitter::User.new(:id => 7_505_382) expect(user.profile_image_uri).to be_nil end @@ -220,15 +262,15 @@ end describe '#profile_image_uri_https' do it 'accepts utf8 urls' do user = Twitter::User.new(:id => 7_505_382, :profile_image_url_https => 'https://si0.twimg.com/profile_images/7_505_382/1348266581©_normal.png') - expect(user.profile_image_uri_https).to be_a Addressable::URI + expect(user.profile_image_uri_https).to be_an Addressable::URI end it 'returns a URI when profile_image_url_https is set' do user = Twitter::User.new(:id => 7_505_382, :profile_image_url_https => 'https://a0.twimg.com/profile_images/1759857427/image1326743606_normal.png') - expect(user.profile_image_uri_https).to be_a Addressable::URI + expect(user.profile_image_uri_https).to be_an Addressable::URI end it 'returns nil when created_at is not set' do user = Twitter::User.new(:id => 7_505_382) expect(user.profile_image_uri_https).to be_nil end @@ -303,21 +345,34 @@ end describe '#uri' do it 'returns the URI to the user' do user = Twitter::User.new(:id => 7_505_382, :screen_name => 'sferik') - expect(user.uri).to be_a Addressable::URI + expect(user.uri).to be_an Addressable::URI expect(user.uri.to_s).to eq('https://twitter.com/sferik') end end describe '#website' do it 'returns a URI when the url is set' do user = Twitter::User.new(:id => 7_505_382, :url => 'https://github.com/sferik') - expect(user.website).to be_a Addressable::URI + expect(user.website).to be_an Addressable::URI expect(user.website.to_s).to eq('https://github.com/sferik') end + it 'returns a URI when the tweet includes website URI entities' do + urls_array = [ + { + :url => 'https://t.co/L2xIBazMPf', + :expanded_url => 'http://example.com/expanded', + :display_url => 'example.com/expanded…', + :indices => [0, 23], + } + ] + user = Twitter::User.new(:id => 7_505_382, :entities => {:url => {:urls => urls_array}}) + expect(user.website).to be_an Addressable::URI + expect(user.website.to_s).to eq('http://example.com/expanded') + end it 'returns nil when the url is not set' do user = Twitter::User.new(:id => 7_505_382) expect(user.website).to be_nil end end @@ -325,12 +380,64 @@ describe '#website?' do it 'returns true when the url is set' do user = Twitter::User.new(:id => 7_505_382, :url => 'https://github.com/sferik') expect(user.website?).to be true end + it 'returns true when the tweet includes website URI entities' do + urls_array = [ + { + :url => 'https://t.co/L2xIBazMPf', + :expanded_url => 'http://example.com/expanded', + :display_url => 'example.com/expanded…', + :indices => [0, 23], + } + ] + user = Twitter::User.new(:id => 7_505_382, :entities => {:url => {:urls => urls_array}}) + expect(user.website?).to be true + end it 'returns false when the url is not set' do user = Twitter::User.new(:id => 7_505_382) expect(user.website?).to be false end end + describe '#website_uris' do + it 'returns an array of Entity::URIs when website URI entities are set' do + urls_array = [ + { + :url => 'https://t.co/L2xIBazMPf', + :expanded_url => 'http://example.com/expanded', + :display_url => 'example.com/expanded…', + :indices => [0, 23], + } + ] + user = Twitter::User.new(:id => 7_505_382, :entities => {:url => {:urls => urls_array}}) + expect(user.website_uris).to be_an Array + expect(user.website_uris.first).to be_a Twitter::Entity::URI + expect(user.website_uris.first.indices).to eq([0, 23]) + expect(user.website_uris.first.expanded_uri).to be_an Addressable::URI + end + it 'is empty when not set' do + user = Twitter::User.new(:id => 7_505_382, :entities => {:url => {:urls => []}}) + expect(user.website_uris).to be_empty + end + end + + describe '#website_uris?' do + it 'returns true when the tweet includes website URI entities' do + urls_array = [ + { + :url => 'https://t.co/L2xIBazMPf', + :expanded_url => 'http://example.com/expanded', + :display_url => 'example.com/expanded…', + :indices => [0, 23], + } + ] + user = Twitter::User.new(:id => 7_505_382, :entities => {:url => {:urls => urls_array}}) + expect(user.website_uris?).to be true + end + it 'returns false when no entities are present' do + user = Twitter::User.new(:id => 7_505_382, :entities => {}) + expect(user.website_uris?).to be false + end + end end