test/campaign_test.rb in createsend-2.5.1 vs test/campaign_test.rb in createsend-3.0.0

- old
+ new

@@ -1,30 +1,28 @@ require File.dirname(__FILE__) + '/helper' class CampaignTest < Test::Unit::TestCase - context "when an api caller is authenticated" do + multiple_contexts "authenticated_using_oauth_context", "authenticated_using_api_key_context" do setup do - @api_key = '123123123123123123123' - CreateSend.api_key @api_key - @campaign = CreateSend::Campaign.new('787y87y87y87y87y87y87') + @campaign = CreateSend::Campaign.new @auth, '787y87y87y87y87y87y87' end should "create a campaign" do client_id = '87y8d7qyw8d7yq8w7ydwqwd' - stub_post(@api_key, "campaigns/#{client_id}.json", "create_campaign.json") - campaign_id = CreateSend::Campaign.create client_id, "subject", "name", "g'day", "good.day@example.com", "good.day@example.com", + stub_post(@auth, "campaigns/#{client_id}.json", "create_campaign.json") + campaign_id = CreateSend::Campaign.create @auth, client_id, "subject", "name", "g'day", "good.day@example.com", "good.day@example.com", "http://example.com/campaign.html", "http://example.com/campaign.txt", [ '7y12989e82ue98u2e', 'dh9w89q8w98wudwd989' ], [ 'y78q9w8d9w8ud9q8uw', 'djw98quw9duqw98uwd98' ] request = FakeWeb.last_request.body request.include?("\"TextUrl\":\"http://example.com/campaign.txt\"").should == true campaign_id.should == "787y87y87y87y87y87y87" end should "create a campaign with a nil text_url param" do client_id = '87y8d7qyw8d7yq8w7ydwqwd' - stub_post(@api_key, "campaigns/#{client_id}.json", "create_campaign.json") - campaign_id = CreateSend::Campaign.create client_id, "subject", "name", "g'day", "good.day@example.com", "good.day@example.com", + stub_post(@auth, "campaigns/#{client_id}.json", "create_campaign.json") + campaign_id = CreateSend::Campaign.create @auth, client_id, "subject", "name", "g'day", "good.day@example.com", "good.day@example.com", "http://example.com/campaign.html", nil, [ '7y12989e82ue98u2e', 'dh9w89q8w98wudwd989' ], [ 'y78q9w8d9w8ud9q8uw', 'djw98quw9duqw98uwd98' ] request = FakeWeb.last_request.body request.include?("\"TextUrl\":null").should == true campaign_id.should == "787y87y87y87y87y87y87" @@ -102,44 +100,44 @@ # <p><unsubscribe>Unsubscribe</unsubscribe></p> # </body> # </html> client_id = '87y8d7qyw8d7yq8w7ydwqwd' - stub_post(@api_key, "campaigns/#{client_id}/fromtemplate.json", "create_campaign.json") - campaign_id = CreateSend::Campaign.create_from_template client_id, "subject", "name", "g'day", "good.day@example.com", "good.day@example.com", + stub_post(@auth, "campaigns/#{client_id}/fromtemplate.json", "create_campaign.json") + campaign_id = CreateSend::Campaign.create_from_template @auth, client_id, "subject", "name", "g'day", "good.day@example.com", "good.day@example.com", [ '7y12989e82ue98u2e', 'dh9w89q8w98wudwd989' ], [ 'y78q9w8d9w8ud9q8uw', 'djw98quw9duqw98uwd98' ], "7j8uw98udowy12989e8298u2e", template_content campaign_id.should == "787y87y87y87y87y87y87" end should "send a preview of a draft campaign to a single recipient" do - stub_post(@api_key, "campaigns/#{@campaign.campaign_id}/sendpreview.json", nil) + stub_post(@auth, "campaigns/#{@campaign.campaign_id}/sendpreview.json", nil) @campaign.send_preview "test+89898u9@example.com", "random" end should "send a preview of a draft campaign to multiple recipients" do - stub_post(@api_key, "campaigns/#{@campaign.campaign_id}/sendpreview.json", nil) + stub_post(@auth, "campaigns/#{@campaign.campaign_id}/sendpreview.json", nil) @campaign.send_preview [ "test+89898u9@example.com", "test+787y8y7y8@example.com" ], "random" end should "send a campaign" do - stub_post(@api_key, "campaigns/#{@campaign.campaign_id}/send.json", nil) + stub_post(@auth, "campaigns/#{@campaign.campaign_id}/send.json", nil) @campaign.send "confirmation@example.com" end should "unschedule a campaign" do - stub_post(@api_key, "campaigns/#{@campaign.campaign_id}/unschedule.json", nil) + stub_post(@auth, "campaigns/#{@campaign.campaign_id}/unschedule.json", nil) @campaign.unschedule end should "delete a campaign" do - stub_delete(@api_key, "campaigns/#{@campaign.campaign_id}.json", nil) + stub_delete(@auth, "campaigns/#{@campaign.campaign_id}.json", nil) @campaign.delete end - + should "get the summary for a campaign" do - stub_get(@api_key, "campaigns/#{@campaign.campaign_id}/summary.json", "campaign_summary.json") + stub_get(@auth, "campaigns/#{@campaign.campaign_id}/summary.json", "campaign_summary.json") summary = @campaign.summary summary.Recipients.should == 5 summary.TotalOpened.should == 10 summary.Clicks.should == 0 summary.Unsubscribed.should == 0 @@ -153,21 +151,21 @@ summary.WorldviewURL.should == "http://client.createsend.com/reports/wv/r/3A433FC72FFE3B8B" summary.SpamComplaints.should == 23 end should "get the email client usage for a campaign" do - stub_get(@api_key, "campaigns/#{@campaign.campaign_id}/emailclientusage.json", "email_client_usage.json") + stub_get(@auth, "campaigns/#{@campaign.campaign_id}/emailclientusage.json", "email_client_usage.json") ecu = @campaign.email_client_usage ecu.size.should == 6 ecu.first.Client.should == "iOS Devices" ecu.first.Version.should == "iPhone" ecu.first.Percentage.should == 19.83 ecu.first.Subscribers.should == 7056 end should "get the lists and segments for a campaign" do - stub_get(@api_key, "campaigns/#{@campaign.campaign_id}/listsandsegments.json", "campaign_listsandsegments.json") + stub_get(@auth, "campaigns/#{@campaign.campaign_id}/listsandsegments.json", "campaign_listsandsegments.json") ls = @campaign.lists_and_segments ls.Lists.size.should == 1 ls.Segments.size.should == 1 ls.Lists.first.Name.should == "List One" ls.Lists.first.ListID.should == "a58ee1d3039b8bec838e6d1482a8a965" @@ -175,11 +173,11 @@ ls.Segments.first.ListID.should == "2bea949d0bf96148c3e6a209d2e82060" ls.Segments.first.SegmentID.should == "dba84a225d5ce3d19105d7257baac46f" end should "get the recipients for a campaign" do - stub_get(@api_key, "campaigns/#{@campaign.campaign_id}/recipients.json?pagesize=20&orderfield=email&page=1&orderdirection=asc", "campaign_recipients.json") + stub_get(@auth, "campaigns/#{@campaign.campaign_id}/recipients.json?pagesize=20&orderfield=email&page=1&orderdirection=asc", "campaign_recipients.json") res = @campaign.recipients page=1, page_size=20 res.ResultsOrderedBy.should == "email" res.OrderDirection.should == "asc" res.PageNumber.should == 1 res.PageSize.should == 20 @@ -191,11 +189,11 @@ res.Results.first.ListID.should == "a994a3caf1328a16af9a69a730eaa706" end should "get the opens for a campaign" do min_date = "2010-01-01" - stub_get(@api_key, "campaigns/#{@campaign.campaign_id}/opens.json?page=1&pagesize=1000&orderfield=date&orderdirection=asc&date=#{CGI.escape(min_date)}", "campaign_opens.json") + stub_get(@auth, "campaigns/#{@campaign.campaign_id}/opens.json?page=1&pagesize=1000&orderfield=date&orderdirection=asc&date=#{CGI.escape(min_date)}", "campaign_opens.json") opens = @campaign.opens min_date opens.Results.size.should == 5 opens.Results.first.EmailAddress.should == "subs+6576576576@example.com" opens.Results.first.ListID.should == "512a3bc577a58fdf689c654329b50fa0" opens.Results.first.Date.should == "2010-10-11 08:29:00" @@ -215,11 +213,11 @@ opens.NumberOfPages.should == 1 end should "get the subscriber clicks for a campaign" do min_date = "2010-01-01" - stub_get(@api_key, "campaigns/#{@campaign.campaign_id}/clicks.json?page=1&pagesize=1000&orderfield=date&orderdirection=asc&date=#{CGI.escape(min_date)}", "campaign_clicks.json") + stub_get(@auth, "campaigns/#{@campaign.campaign_id}/clicks.json?page=1&pagesize=1000&orderfield=date&orderdirection=asc&date=#{CGI.escape(min_date)}", "campaign_clicks.json") clicks = @campaign.clicks min_date clicks.Results.size.should == 3 clicks.Results.first.EmailAddress.should == "subs+6576576576@example.com" clicks.Results.first.URL.should == "http://video.google.com.au/?hl=en&tab=wv" clicks.Results.first.ListID.should == "512a3bc577a58fdf689c654329b50fa0" @@ -240,11 +238,11 @@ clicks.NumberOfPages.should == 1 end should "get the unsubscribes for a campaign" do min_date = "2010-01-01" - stub_get(@api_key, "campaigns/#{@campaign.campaign_id}/unsubscribes.json?page=1&pagesize=1000&orderfield=date&orderdirection=asc&date=#{CGI.escape(min_date)}", "campaign_unsubscribes.json") + stub_get(@auth, "campaigns/#{@campaign.campaign_id}/unsubscribes.json?page=1&pagesize=1000&orderfield=date&orderdirection=asc&date=#{CGI.escape(min_date)}", "campaign_unsubscribes.json") unsubscribes = @campaign.unsubscribes min_date unsubscribes.Results.size.should == 1 unsubscribes.Results.first.EmailAddress.should == "subs+6576576576@example.com" unsubscribes.Results.first.ListID.should == "512a3bc577a58fdf689c654329b50fa0" unsubscribes.Results.first.Date.should == "2010-10-11 08:29:00" @@ -258,11 +256,11 @@ unsubscribes.NumberOfPages.should == 1 end should "get the spam complaints for a campaign" do min_date = "2010-01-01" - stub_get(@api_key, "campaigns/#{@campaign.campaign_id}/spam.json?page=1&pagesize=1000&orderfield=date&orderdirection=asc&date=#{CGI.escape(min_date)}", "campaign_spam.json") + stub_get(@auth, "campaigns/#{@campaign.campaign_id}/spam.json?page=1&pagesize=1000&orderfield=date&orderdirection=asc&date=#{CGI.escape(min_date)}", "campaign_spam.json") spam = @campaign.spam min_date spam.Results.size.should == 1 spam.Results.first.EmailAddress.should == "subs+6576576576@example.com" spam.Results.first.ListID.should == "512a3bc577a58fdf689c654329b50fa0" spam.Results.first.Date.should == "2010-10-11 08:29:00" @@ -275,10 +273,10 @@ spam.NumberOfPages.should == 1 end should "get the bounces for a campaign" do min_date = "2010-01-01" - stub_get(@api_key, "campaigns/#{@campaign.campaign_id}/bounces.json?page=1&pagesize=1000&orderfield=date&orderdirection=asc&date=#{CGI.escape(min_date)}", "campaign_bounces.json") + stub_get(@auth, "campaigns/#{@campaign.campaign_id}/bounces.json?page=1&pagesize=1000&orderfield=date&orderdirection=asc&date=#{CGI.escape(min_date)}", "campaign_bounces.json") bounces = @campaign.bounces min_date bounces.Results.size.should == 2 bounces.Results.first.EmailAddress.should == "asdf@softbouncemyemail.com" bounces.Results.first.ListID.should == "654523a5855b4a440bae3fb295641546" bounces.Results.first.BounceType.should == "Soft" \ No newline at end of file