# coding: utf-8 require 'livefyre' require 'jwt' RSpec.configure do |c| c.filter_run_excluding :broken => true end describe Livefyre::Site do before(:each) do @site = Livefyre.get_network(NETWORK_NAME, NETWORK_KEY).get_site(SITE_ID, SITE_KEY) end it 'should raise ArgumentError if url is not a valid url for cmt' do expect{ @site.build_collection_meta_token('test', 'test', 'blah.com/', 'test') }.to raise_error(ArgumentError) end it 'should raise ArgumentError if title is more than 255 characters for cmt' do expect{ @site.build_collection_meta_token('1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456', 'test', 'http://test.com', 'test') }.to raise_error(ArgumentError) end it 'should raise ArgumentError if not a valid type is passed in when building a collection meta token' do expect{ @site.build_collection_meta_token('', '', 'http://livefyre.com', {type: 'bad type'}) }.to raise_error(ArgumentError) end it 'should check type and assign them to the correct field in the collection meta token' do @token = @site.build_collection_meta_token('', '', 'http://livefyre.com', {tags: '', type: 'reviews'}) @decoded = JWT.decode(@token, SITE_KEY) expect(@decoded['type']).to eq('reviews') @token = @site.build_collection_meta_token('', '', 'http://livefyre.com', {type: 'liveblog'}) @decoded = JWT.decode(@token, SITE_KEY) expect(@decoded['type']).to eq('liveblog') end it 'should return a collection meta token' do expect{ @site.build_collection_meta_token('title', 'article_id', 'https://www.url.com', 'tags') }.to be_true end it 'should raise ArgumentError if url is not a valid url for checksum' do expect{ @site.build_checksum('test', 'blah.com/', 'test') }.to raise_error(ArgumentError) end it 'should raise ArgumentError if title is more than 255 characters for checksum' do expect{ @site.build_checksum('1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456', 'http://test.com', 'test') }.to raise_error(ArgumentError) end it 'should return a valid checksum' do expect(@site.build_checksum('title', 'https://www.url.com', 'tags')).to eq('4464458a10c305693b5bf4d43a384be7') end it 'should check for valid and invalid urls' do expect{ @site.build_checksum('', 'test.com', '') }.to raise_error(ArgumentError) @site.build_checksum('', 'http://localhost:8000', '') @site.build_checksum('', 'http://清华大学.cn', '') @site.build_checksum('', 'http://www.mysite.com/myresumé.html', '') @site.build_checksum('', 'https://test.com/', '') @site.build_checksum('', 'ftp://test.com/', '') @site.build_checksum('', "https://test.com/path/test.-_~!$&'()*+,;=:@/dash", '') end it 'should test basic site api', :broken => true do @site.get_collection_content(ARTICLE_ID) name = "RubyCreateCollection#{Time.new}" id = @site.create_collection(name, name, 'http://answers.livefyre.com/RUBY') expect(@site.get_collection_id(name)).to eq(id) end end