createsend 6.0.0 → 6.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/HISTORY.md +13 -0
- data/README.md +1 -1
- data/lib/createsend/list.rb +13 -12
- data/lib/createsend/subscriber.rb +8 -4
- data/lib/createsend/version.rb +1 -1
- data/samples/lists_sample.rb +12 -2
- data/samples/subscribers_sample.rb +51 -0
- data/test/administrator_test.rb +5 -5
- data/test/campaign_test.rb +114 -114
- data/test/client_test.rb +110 -110
- data/test/createsend_test.rb +47 -47
- data/test/fixtures/subscriber_details.json +1 -0
- data/test/fixtures/{subscriber_details_with_track_pref.json → subscriber_details_with_track_and_sms_pref.json} +3 -1
- data/test/fixtures/unconfirmed_subscribers.json +4 -2
- data/test/journey_test.rb +86 -86
- data/test/list_test.rb +130 -129
- data/test/person_test.rb +6 -6
- data/test/segment_test.rb +23 -23
- data/test/subscriber_test.rb +55 -52
- data/test/template_test.rb +5 -5
- data/test/transactional_classic_email_test.rb +6 -6
- data/test/transactional_smart_email_test.rb +19 -19
- data/test/transactional_timeline_test.rb +25 -25
- metadata +5 -5
- data/samples/subscribes_sample.rb +0 -22
data/test/segment_test.rb
CHANGED
@@ -11,7 +11,7 @@ class SegmentTest < Test::Unit::TestCase
|
|
11
11
|
rule_groups = [ { :Rules => [ { :RuleType => "EmailAddress", :Clause => "CONTAINS example.com" } ] } ]
|
12
12
|
stub_post(@auth, "segments/#{list_id}.json", "create_segment.json")
|
13
13
|
res = CreateSend::Segment.create @auth, list_id, "new segment title", rule_groups
|
14
|
-
res.should == "0246c2aea610a3545d9780bf6ab89006"
|
14
|
+
res.should be == "0246c2aea610a3545d9780bf6ab89006"
|
15
15
|
end
|
16
16
|
|
17
17
|
should "update a segment" do
|
@@ -31,20 +31,20 @@ class SegmentTest < Test::Unit::TestCase
|
|
31
31
|
stub_get(@auth, "segments/#{@segment.segment_id}/active.json?pagesize=1000&orderfield=email&page=1&orderdirection=asc&date=#{ERB::Util.url_encode(min_date)}&includetrackingpreference=false",
|
32
32
|
"segment_subscribers.json")
|
33
33
|
res = @segment.subscribers min_date
|
34
|
-
res.ResultsOrderedBy.should == "email"
|
35
|
-
res.OrderDirection.should == "asc"
|
36
|
-
res.PageNumber.should == 1
|
37
|
-
res.PageSize.should == 1000
|
38
|
-
res.RecordsOnThisPage.should == 2
|
39
|
-
res.TotalNumberOfRecords.should == 2
|
40
|
-
res.NumberOfPages.should == 1
|
41
|
-
res.Results.size.should == 2
|
42
|
-
res.Results.first.EmailAddress.should == "personone@example.com"
|
43
|
-
res.Results.first.Name.should == "Person One"
|
44
|
-
res.Results.first.Date.should == "2010-10-27 13:13:00"
|
45
|
-
res.Results.first.ListJoinedDate.should == "2010-10-27 13:13:00"
|
46
|
-
res.Results.first.State.should == "Active"
|
47
|
-
res.Results.first.CustomFields.should == []
|
34
|
+
res.ResultsOrderedBy.should be == "email"
|
35
|
+
res.OrderDirection.should be == "asc"
|
36
|
+
res.PageNumber.should be == 1
|
37
|
+
res.PageSize.should be == 1000
|
38
|
+
res.RecordsOnThisPage.should be == 2
|
39
|
+
res.TotalNumberOfRecords.should be == 2
|
40
|
+
res.NumberOfPages.should be == 1
|
41
|
+
res.Results.size.should be == 2
|
42
|
+
res.Results.first.EmailAddress.should be == "personone@example.com"
|
43
|
+
res.Results.first.Name.should be == "Person One"
|
44
|
+
res.Results.first.Date.should be == "2010-10-27 13:13:00"
|
45
|
+
res.Results.first.ListJoinedDate.should be == "2010-10-27 13:13:00"
|
46
|
+
res.Results.first.State.should be == "Active"
|
47
|
+
res.Results.first.CustomFields.should be == []
|
48
48
|
end
|
49
49
|
|
50
50
|
should "delete a segment" do
|
@@ -55,14 +55,14 @@ class SegmentTest < Test::Unit::TestCase
|
|
55
55
|
should "get the details of a segment" do
|
56
56
|
stub_get(@auth, "segments/#{@segment.segment_id}.json", "segment_details.json")
|
57
57
|
res = @segment.details
|
58
|
-
res.ActiveSubscribers.should == 0
|
59
|
-
res.RuleGroups.size.should == 2
|
60
|
-
res.RuleGroups.first.Rules.size.should == 1
|
61
|
-
res.RuleGroups.first.Rules.first.RuleType.should == "EmailAddress"
|
62
|
-
res.RuleGroups.first.Rules.first.Clause.should == "CONTAINS @hello.com"
|
63
|
-
res.ListID.should == "2bea949d0bf96148c3e6a209d2e82060"
|
64
|
-
res.SegmentID.should == "dba84a225d5ce3d19105d7257baac46f"
|
65
|
-
res.Title.should == "My Segment"
|
58
|
+
res.ActiveSubscribers.should be == 0
|
59
|
+
res.RuleGroups.size.should be == 2
|
60
|
+
res.RuleGroups.first.Rules.size.should be == 1
|
61
|
+
res.RuleGroups.first.Rules.first.RuleType.should be == "EmailAddress"
|
62
|
+
res.RuleGroups.first.Rules.first.Clause.should be == "CONTAINS @hello.com"
|
63
|
+
res.ListID.should be == "2bea949d0bf96148c3e6a209d2e82060"
|
64
|
+
res.SegmentID.should be == "dba84a225d5ce3d19105d7257baac46f"
|
65
|
+
res.Title.should be == "My Segment"
|
66
66
|
end
|
67
67
|
|
68
68
|
should "clear a segment's rules" do
|
data/test/subscriber_test.rb
CHANGED
@@ -11,37 +11,40 @@ class SubscriberTest < Test::Unit::TestCase
|
|
11
11
|
email = "subscriber@example.com"
|
12
12
|
stub_get(@auth, "subscribers/#{@list_id}.json?email=#{ERB::Util.url_encode(email)}&includetrackingpreference=false", "subscriber_details.json")
|
13
13
|
subscriber = CreateSend::Subscriber.get @auth, @list_id, email
|
14
|
-
subscriber.EmailAddress.should == email
|
15
|
-
subscriber.Name.should == "Subscriber One"
|
16
|
-
subscriber.Date.should == "2010-10-25 10:28:00"
|
17
|
-
subscriber.
|
18
|
-
subscriber.
|
19
|
-
subscriber.
|
20
|
-
subscriber.CustomFields.
|
21
|
-
subscriber.CustomFields.first.
|
22
|
-
subscriber.
|
14
|
+
subscriber.EmailAddress.should be == email
|
15
|
+
subscriber.Name.should be == "Subscriber One"
|
16
|
+
subscriber.Date.should be == "2010-10-25 10:28:00"
|
17
|
+
subscriber.MobileNumber.should be == "+61423153526"
|
18
|
+
subscriber.ListJoinedDate.should be == "2010-10-25 10:28:00"
|
19
|
+
subscriber.State.should be == "Active"
|
20
|
+
subscriber.CustomFields.size.should be == 3
|
21
|
+
subscriber.CustomFields.first.Key.should be == 'website'
|
22
|
+
subscriber.CustomFields.first.Value.should be == 'http://example.com'
|
23
|
+
subscriber.ReadsEmailWith.should be == "Gmail"
|
23
24
|
end
|
24
25
|
|
25
|
-
should "get a subscriber with track preference information" do
|
26
|
+
should "get a subscriber with track and sms preference information" do
|
26
27
|
email = "subscriber@example.com"
|
27
|
-
stub_get(@auth, "subscribers/#{@list_id}.json?email=#{ERB::Util.url_encode(email)}&includetrackingpreference=true", "
|
28
|
+
stub_get(@auth, "subscribers/#{@list_id}.json?email=#{ERB::Util.url_encode(email)}&includetrackingpreference=true", "subscriber_details_with_track_and_sms_pref.json")
|
28
29
|
subscriber = CreateSend::Subscriber.get @auth, @list_id, email, true
|
29
|
-
subscriber.EmailAddress.should == email
|
30
|
-
subscriber.Name.should == "Subscriber One"
|
31
|
-
subscriber.
|
30
|
+
subscriber.EmailAddress.should be == email
|
31
|
+
subscriber.Name.should be == "Subscriber One"
|
32
|
+
subscriber.MobileNumber.should be == "+61423153526"
|
33
|
+
subscriber.ConsentToTrack.should be == "Yes"
|
34
|
+
subscriber.ConsentToSendSms.should be == "No"
|
32
35
|
end
|
33
36
|
|
34
37
|
should "add a subscriber without custom fields" do
|
35
38
|
stub_post(@auth, "subscribers/#{@list_id}.json", "add_subscriber.json")
|
36
39
|
email_address = CreateSend::Subscriber.add @auth, @list_id, "subscriber@example.com", "Subscriber", [], true, "Yes"
|
37
|
-
email_address.should == "subscriber@example.com"
|
40
|
+
email_address.should be == "subscriber@example.com"
|
38
41
|
end
|
39
42
|
|
40
43
|
should "add a subscriber with custom fields" do
|
41
44
|
stub_post(@auth, "subscribers/#{@list_id}.json", "add_subscriber.json")
|
42
45
|
custom_fields = [ { :Key => 'website', :Value => 'http://example.com/' } ]
|
43
46
|
email_address = CreateSend::Subscriber.add @auth, @list_id, "subscriber@example.com", "Subscriber", custom_fields, true, "Yes"
|
44
|
-
email_address.should == "subscriber@example.com"
|
47
|
+
email_address.should be == "subscriber@example.com"
|
45
48
|
end
|
46
49
|
|
47
50
|
should "add a subscriber with custom fields including multi-option fields" do
|
@@ -50,7 +53,7 @@ class SubscriberTest < Test::Unit::TestCase
|
|
50
53
|
{ :Key => 'multioptionselectmany', :Value => 'firstoption' },
|
51
54
|
{ :Key => 'multioptionselectmany', :Value => 'secondoption' } ]
|
52
55
|
email_address = CreateSend::Subscriber.add @auth, @list_id, "subscriber@example.com", "Subscriber", custom_fields, true, "Yes"
|
53
|
-
email_address.should == "subscriber@example.com"
|
56
|
+
email_address.should be == "subscriber@example.com"
|
54
57
|
end
|
55
58
|
|
56
59
|
should "update a subscriber with custom fields" do
|
@@ -59,7 +62,7 @@ class SubscriberTest < Test::Unit::TestCase
|
|
59
62
|
stub_put(@auth, "subscribers/#{@list_id}.json?email=#{ERB::Util.url_encode(email)}", nil)
|
60
63
|
custom_fields = [ { :Key => 'website', :Value => 'http://example.com/' } ]
|
61
64
|
@subscriber.update new_email, "Subscriber", custom_fields, true, "Yes"
|
62
|
-
@subscriber.email_address.should == new_email
|
65
|
+
@subscriber.email_address.should be == new_email
|
63
66
|
end
|
64
67
|
|
65
68
|
should "update a subscriber with custom fields including the clear option" do
|
@@ -68,7 +71,7 @@ class SubscriberTest < Test::Unit::TestCase
|
|
68
71
|
stub_put(@auth, "subscribers/#{@list_id}.json?email=#{ERB::Util.url_encode(email)}", nil)
|
69
72
|
custom_fields = [ { :Key => 'website', :Value => '', :Clear => true } ]
|
70
73
|
@subscriber.update new_email, "Subscriber", custom_fields, true, "No"
|
71
|
-
@subscriber.email_address.should == new_email
|
74
|
+
@subscriber.email_address.should be == new_email
|
72
75
|
end
|
73
76
|
|
74
77
|
should "import many subscribers at once" do
|
@@ -79,11 +82,11 @@ class SubscriberTest < Test::Unit::TestCase
|
|
79
82
|
{ :EmailAddress => "example+3@example.com", :Name => "Example Three" },
|
80
83
|
]
|
81
84
|
import_result = CreateSend::Subscriber.import @auth, @list_id, subscribers, true
|
82
|
-
import_result.FailureDetails.size.should == 0
|
83
|
-
import_result.TotalUniqueEmailsSubmitted.should == 3
|
84
|
-
import_result.TotalExistingSubscribers.should == 0
|
85
|
-
import_result.TotalNewSubscribers.should == 3
|
86
|
-
import_result.DuplicateEmailsInSubmission.size.should == 0
|
85
|
+
import_result.FailureDetails.size.should be == 0
|
86
|
+
import_result.TotalUniqueEmailsSubmitted.should be == 3
|
87
|
+
import_result.TotalExistingSubscribers.should be == 0
|
88
|
+
import_result.TotalNewSubscribers.should be == 3
|
89
|
+
import_result.DuplicateEmailsInSubmission.size.should be == 0
|
87
90
|
end
|
88
91
|
|
89
92
|
should "import many subscribers at once, and start subscription-based autoresponders" do
|
@@ -94,11 +97,11 @@ class SubscriberTest < Test::Unit::TestCase
|
|
94
97
|
{ :EmailAddress => "example+3@example.com", :Name => "Example Three" },
|
95
98
|
]
|
96
99
|
import_result = CreateSend::Subscriber.import @auth, @list_id, subscribers, true, true
|
97
|
-
import_result.FailureDetails.size.should == 0
|
98
|
-
import_result.TotalUniqueEmailsSubmitted.should == 3
|
99
|
-
import_result.TotalExistingSubscribers.should == 0
|
100
|
-
import_result.TotalNewSubscribers.should == 3
|
101
|
-
import_result.DuplicateEmailsInSubmission.size.should == 0
|
100
|
+
import_result.FailureDetails.size.should be == 0
|
101
|
+
import_result.TotalUniqueEmailsSubmitted.should be == 3
|
102
|
+
import_result.TotalExistingSubscribers.should be == 0
|
103
|
+
import_result.TotalNewSubscribers.should be == 3
|
104
|
+
import_result.DuplicateEmailsInSubmission.size.should be == 0
|
102
105
|
end
|
103
106
|
|
104
107
|
should "import many subscribers at once with custom fields, including the clear option" do
|
@@ -109,11 +112,11 @@ class SubscriberTest < Test::Unit::TestCase
|
|
109
112
|
{ :EmailAddress => "example+3@example.com", :Name => "Example Three", :CustomFields => [ { :Key => 'website', :Value => '', :Clear => false } ] },
|
110
113
|
]
|
111
114
|
import_result = CreateSend::Subscriber.import @auth, @list_id, subscribers, true
|
112
|
-
import_result.FailureDetails.size.should == 0
|
113
|
-
import_result.TotalUniqueEmailsSubmitted.should == 3
|
114
|
-
import_result.TotalExistingSubscribers.should == 0
|
115
|
-
import_result.TotalNewSubscribers.should == 3
|
116
|
-
import_result.DuplicateEmailsInSubmission.size.should == 0
|
115
|
+
import_result.FailureDetails.size.should be == 0
|
116
|
+
import_result.TotalUniqueEmailsSubmitted.should be == 3
|
117
|
+
import_result.TotalExistingSubscribers.should be == 0
|
118
|
+
import_result.TotalNewSubscribers.should be == 3
|
119
|
+
import_result.DuplicateEmailsInSubmission.size.should be == 0
|
117
120
|
end
|
118
121
|
|
119
122
|
should "import many subscribers at once with partial success" do
|
@@ -125,14 +128,14 @@ class SubscriberTest < Test::Unit::TestCase
|
|
125
128
|
{ :EmailAddress => "example+3@example.com", :Name => "Example Three" },
|
126
129
|
]
|
127
130
|
import_result = CreateSend::Subscriber.import @auth, @list_id, subscribers, true
|
128
|
-
import_result.FailureDetails.size.should == 1
|
129
|
-
import_result.FailureDetails.first.EmailAddress.should == "example+1@example"
|
130
|
-
import_result.FailureDetails.first.Code.should == 1
|
131
|
-
import_result.FailureDetails.first.Message.should == "Invalid Email Address"
|
132
|
-
import_result.TotalUniqueEmailsSubmitted.should == 3
|
133
|
-
import_result.TotalExistingSubscribers.should == 2
|
134
|
-
import_result.TotalNewSubscribers.should == 0
|
135
|
-
import_result.DuplicateEmailsInSubmission.size.should == 0
|
131
|
+
import_result.FailureDetails.size.should be == 1
|
132
|
+
import_result.FailureDetails.first.EmailAddress.should be == "example+1@example"
|
133
|
+
import_result.FailureDetails.first.Code.should be == 1
|
134
|
+
import_result.FailureDetails.first.Message.should be == "Invalid Email Address"
|
135
|
+
import_result.TotalUniqueEmailsSubmitted.should be == 3
|
136
|
+
import_result.TotalExistingSubscribers.should be == 2
|
137
|
+
import_result.TotalNewSubscribers.should be == 0
|
138
|
+
import_result.DuplicateEmailsInSubmission.size.should be == 0
|
136
139
|
end
|
137
140
|
|
138
141
|
should "raise a BadRequest error if the import _completely_ fails because of a bad request" do
|
@@ -143,7 +146,7 @@ class SubscriberTest < Test::Unit::TestCase
|
|
143
146
|
{ :EmailAddress => "example+2@example.com", :Name => "Example Two" },
|
144
147
|
{ :EmailAddress => "example+3@example.com", :Name => "Example Three" },
|
145
148
|
]
|
146
|
-
lambda {
|
149
|
+
lambda { CreateSend::Subscriber.import @auth, @list_id, subscribers,
|
147
150
|
true }.should raise_error(CreateSend::BadRequest)
|
148
151
|
end
|
149
152
|
|
@@ -155,15 +158,15 @@ class SubscriberTest < Test::Unit::TestCase
|
|
155
158
|
should "get a subscriber's history" do
|
156
159
|
stub_get(@auth, "subscribers/#{@subscriber.list_id}/history.json?email=#{ERB::Util.url_encode(@subscriber.email_address)}", "subscriber_history.json")
|
157
160
|
history = @subscriber.history
|
158
|
-
history.size.should == 1
|
159
|
-
history.first.Name.should == "Campaign One"
|
160
|
-
history.first.Type.should == "Campaign"
|
161
|
-
history.first.ID.should == "fc0ce7105baeaf97f47c99be31d02a91"
|
162
|
-
history.first.Actions.size.should == 6
|
163
|
-
history.first.Actions.first.Event.should == "Open"
|
164
|
-
history.first.Actions.first.Date.should == "2010-10-12 13:18:00"
|
165
|
-
history.first.Actions.first.IPAddress.should == "192.168.126.87"
|
166
|
-
history.first.Actions.first.Detail.should == ""
|
161
|
+
history.size.should be == 1
|
162
|
+
history.first.Name.should be == "Campaign One"
|
163
|
+
history.first.Type.should be == "Campaign"
|
164
|
+
history.first.ID.should be == "fc0ce7105baeaf97f47c99be31d02a91"
|
165
|
+
history.first.Actions.size.should be == 6
|
166
|
+
history.first.Actions.first.Event.should be == "Open"
|
167
|
+
history.first.Actions.first.Date.should be == "2010-10-12 13:18:00"
|
168
|
+
history.first.Actions.first.IPAddress.should be == "192.168.126.87"
|
169
|
+
history.first.Actions.first.Detail.should be == ""
|
167
170
|
end
|
168
171
|
|
169
172
|
should "delete a subscriber" do
|
data/test/template_test.rb
CHANGED
@@ -11,16 +11,16 @@ class TemplateTest < Test::Unit::TestCase
|
|
11
11
|
stub_post(@auth, "templates/#{client_id}.json", "create_template.json")
|
12
12
|
template_id = CreateSend::Template.create @auth, client_id, "Template One", "http://templates.org/index.html",
|
13
13
|
"http://templates.org/files.zip"
|
14
|
-
template_id.should == "98y2e98y289dh89h938389"
|
14
|
+
template_id.should be == "98y2e98y289dh89h938389"
|
15
15
|
end
|
16
16
|
|
17
17
|
should "get details of a template" do
|
18
18
|
stub_get(@auth, "templates/#{@template.template_id}.json", "template_details.json")
|
19
19
|
t = @template.details
|
20
|
-
t.TemplateID.should == "98y2e98y289dh89h938389"
|
21
|
-
t.Name.should == "Template One"
|
22
|
-
t.PreviewURL.should == "http://preview.createsend.com/createsend/templates/previewTemplate.aspx?ID=01AF532CD8889B33&d=r&c=E816F55BFAD1A753"
|
23
|
-
t.ScreenshotURL.should == "http://preview.createsend.com/ts/r/14/833/263/14833263.jpg?0318092600"
|
20
|
+
t.TemplateID.should be == "98y2e98y289dh89h938389"
|
21
|
+
t.Name.should be == "Template One"
|
22
|
+
t.PreviewURL.should be == "http://preview.createsend.com/createsend/templates/previewTemplate.aspx?ID=01AF532CD8889B33&d=r&c=E816F55BFAD1A753"
|
23
|
+
t.ScreenshotURL.should be == "http://preview.createsend.com/ts/r/14/833/263/14833263.jpg?0318092600"
|
24
24
|
end
|
25
25
|
|
26
26
|
should "update a template" do
|
@@ -17,8 +17,8 @@ class TransactionalClassicEmailTest < Test::Unit::TestCase
|
|
17
17
|
"Group" => 'Ruby test group'
|
18
18
|
}
|
19
19
|
response = CreateSend::Transactional::ClassicEmail.new(@auth).send(email)
|
20
|
-
response.length.should == 1
|
21
|
-
response[0].Recipient.should == "\"Bob Sacamano\" <bob@example.com>"
|
20
|
+
response.length.should be == 1
|
21
|
+
response[0].Recipient.should be == "\"Bob Sacamano\" <bob@example.com>"
|
22
22
|
end
|
23
23
|
|
24
24
|
should "send classic email to with all the options" do
|
@@ -44,15 +44,15 @@ class TransactionalClassicEmailTest < Test::Unit::TestCase
|
|
44
44
|
"AddRecipientsToListID" => "6d0366fcee146ab9bdaf3247446bbfdd"
|
45
45
|
}
|
46
46
|
response = CreateSend::Transactional::ClassicEmail.new(@auth).send(email)
|
47
|
-
response.length.should == 2
|
48
|
-
response[1].Recipient.should == "\"Newman\" <newman@example.com>"
|
47
|
+
response.length.should be == 2
|
48
|
+
response[1].Recipient.should be == "\"Newman\" <newman@example.com>"
|
49
49
|
end
|
50
50
|
|
51
51
|
should "get the list of classic groups" do
|
52
52
|
stub_get(@auth, "transactional/classicemail/groups", "tx_classicemail_groups.json")
|
53
53
|
response = CreateSend::Transactional::ClassicEmail.new(@auth).groups
|
54
|
-
response.length.should == 3
|
55
|
-
response[0].Group.should == "Password Reset"
|
54
|
+
response.length.should be == 3
|
55
|
+
response[0].Group.should be == "Password Reset"
|
56
56
|
end
|
57
57
|
|
58
58
|
end
|
@@ -11,27 +11,27 @@ class TransactionalSmartEmailTest < Test::Unit::TestCase
|
|
11
11
|
should "get the list of smart emails" do
|
12
12
|
stub_get(@auth, "transactional/smartemail", "tx_smartemails.json")
|
13
13
|
response = CreateSend::Transactional::SmartEmail.list(@auth)
|
14
|
-
response.length.should == 2
|
15
|
-
response[0].ID.should == "1e654df2-f484-11e4-970c-6c4008bc7468"
|
16
|
-
response[0].Name.should == "Welcome email"
|
17
|
-
response[0].Status.should == "Active"
|
14
|
+
response.length.should be == 2
|
15
|
+
response[0].ID.should be == "1e654df2-f484-11e4-970c-6c4008bc7468"
|
16
|
+
response[0].Name.should be == "Welcome email"
|
17
|
+
response[0].Status.should be == "Active"
|
18
18
|
end
|
19
19
|
|
20
20
|
should "get the list of active smart emails using a client ID" do
|
21
21
|
stub_get(@auth, "transactional/smartemail?status=active&client=#{@client_id}", "tx_smartemails.json")
|
22
22
|
response = CreateSend::Transactional::SmartEmail.list(@auth, { :client => @client_id, :status => 'active'} )
|
23
|
-
response.length.should == 2
|
24
|
-
response[0].ID.should == "1e654df2-f484-11e4-970c-6c4008bc7468"
|
25
|
-
response[0].Name.should == "Welcome email"
|
26
|
-
response[0].Status.should == "Active"
|
23
|
+
response.length.should be == 2
|
24
|
+
response[0].ID.should be == "1e654df2-f484-11e4-970c-6c4008bc7468"
|
25
|
+
response[0].Name.should be == "Welcome email"
|
26
|
+
response[0].Status.should be == "Active"
|
27
27
|
end
|
28
28
|
|
29
29
|
should "get the details of smart email" do
|
30
30
|
stub_get(@auth, "transactional/smartemail/#{@smart_email_id}", "tx_smartemail_details.json")
|
31
31
|
response = CreateSend::Transactional::SmartEmail.new(@auth, @smart_email_id).details
|
32
|
-
response.Name.should == "Reset Password"
|
33
|
-
response.Status.should == "active"
|
34
|
-
response.Properties.ReplyTo.should == "joe@example.com"
|
32
|
+
response.Name.should be == "Reset Password"
|
33
|
+
response.Status.should be == "active"
|
34
|
+
response.Properties.ReplyTo.should be == "joe@example.com"
|
35
35
|
end
|
36
36
|
|
37
37
|
should "send smart email to one recipient" do
|
@@ -44,10 +44,10 @@ class TransactionalSmartEmailTest < Test::Unit::TestCase
|
|
44
44
|
}
|
45
45
|
}
|
46
46
|
response = CreateSend::Transactional::SmartEmail.new(@auth, @smart_email_id).send(email)
|
47
|
-
response.length.should == 1
|
48
|
-
response[0].MessageID.should == "0cfe150d-d507-11e4-84a7-c31e5b59881d"
|
49
|
-
response[0].Recipient.should == "\"Bob Sacamano\" <bob@example.com>"
|
50
|
-
response[0].Status.should == "Received"
|
47
|
+
response.length.should be == 1
|
48
|
+
response[0].MessageID.should be == "0cfe150d-d507-11e4-84a7-c31e5b59881d"
|
49
|
+
response[0].Recipient.should be == "\"Bob Sacamano\" <bob@example.com>"
|
50
|
+
response[0].Status.should be == "Received"
|
51
51
|
end
|
52
52
|
|
53
53
|
should "send smart email to multiple recipients with all the options" do
|
@@ -71,10 +71,10 @@ class TransactionalSmartEmailTest < Test::Unit::TestCase
|
|
71
71
|
"AddRecipientsToListID" => true
|
72
72
|
}
|
73
73
|
response = CreateSend::Transactional::SmartEmail.new(@auth, @smart_email_id).send(email)
|
74
|
-
response.length.should == 2
|
75
|
-
response[1].MessageID.should == "0cfe150d-d507-11e4-b579-a64eb0d9c74d"
|
76
|
-
response[1].Recipient.should == "\"Newman\" <newman@example.com>"
|
77
|
-
response[1].Status.should == "Received"
|
74
|
+
response.length.should be == 2
|
75
|
+
response[1].MessageID.should be == "0cfe150d-d507-11e4-b579-a64eb0d9c74d"
|
76
|
+
response[1].Recipient.should be == "\"Newman\" <newman@example.com>"
|
77
|
+
response[1].Status.should be == "Received"
|
78
78
|
end
|
79
79
|
|
80
80
|
end
|
@@ -13,8 +13,8 @@ class TransactionalTimelineTest < Test::Unit::TestCase
|
|
13
13
|
should "get statistics with the default parameters" do
|
14
14
|
stub_get(@auth, "transactional/statistics", "tx_statistics_classic.json")
|
15
15
|
response = CreateSend::Transactional::Timeline.new(@auth).statistics
|
16
|
-
response.Sent.should == 1000
|
17
|
-
response.Opened.should == 300
|
16
|
+
response.Sent.should be == 1000
|
17
|
+
response.Opened.should be == 300
|
18
18
|
end
|
19
19
|
|
20
20
|
should "get statistics filtered by date and classic group" do
|
@@ -25,9 +25,9 @@ class TransactionalTimelineTest < Test::Unit::TestCase
|
|
25
25
|
"timezone" => "client",
|
26
26
|
"group" => "Password Reset"
|
27
27
|
)
|
28
|
-
response.Query.TimeZone.should == "(GMT+10:00) Canberra, Melbourne, Sydney"
|
29
|
-
response.Query.Group.should == "Password Reset"
|
30
|
-
response.Sent.should == 1000
|
28
|
+
response.Query.TimeZone.should be == "(GMT+10:00) Canberra, Melbourne, Sydney"
|
29
|
+
response.Query.Group.should be == "Password Reset"
|
30
|
+
response.Sent.should be == 1000
|
31
31
|
end
|
32
32
|
|
33
33
|
should "get statistics filtered by date and smart email" do
|
@@ -38,17 +38,17 @@ class TransactionalTimelineTest < Test::Unit::TestCase
|
|
38
38
|
"timezone" => "utc",
|
39
39
|
"smartEmailID" => "bb4a6ebb-663d-42a0-bdbe-60512cf30a01"
|
40
40
|
)
|
41
|
-
response.Query.TimeZone.should == "UTC"
|
42
|
-
response.Query.SmartEmailID.should == "bb4a6ebb-663d-42a0-bdbe-60512cf30a01"
|
43
|
-
response.Sent.should == 1000
|
41
|
+
response.Query.TimeZone.should be == "UTC"
|
42
|
+
response.Query.SmartEmailID.should be == "bb4a6ebb-663d-42a0-bdbe-60512cf30a01"
|
43
|
+
response.Sent.should be == 1000
|
44
44
|
end
|
45
45
|
|
46
46
|
should "get the message timeline with default parameters" do
|
47
47
|
stub_get(@auth, "transactional/messages", "tx_messages.json")
|
48
48
|
response = CreateSend::Transactional::Timeline.new(@auth).messages
|
49
|
-
response.length.should == 3
|
50
|
-
response[0].MessageID.should == "ddc697c7-0788-4df3-a71a-a7cb935f00bd"
|
51
|
-
response[0].Status.should == "Delivered"
|
49
|
+
response.length.should be == 3
|
50
|
+
response[0].MessageID.should be == "ddc697c7-0788-4df3-a71a-a7cb935f00bd"
|
51
|
+
response[0].Status.should be == "Delivered"
|
52
52
|
end
|
53
53
|
|
54
54
|
should "get the message timeline for a smart email" do
|
@@ -61,9 +61,9 @@ class TransactionalTimelineTest < Test::Unit::TestCase
|
|
61
61
|
"smartEmailID" => @smart_email_id,
|
62
62
|
"clientID" => @client_id
|
63
63
|
)
|
64
|
-
response.length.should == 1
|
65
|
-
response[0].MessageID.should == "ddc697c7-0788-4df3-a71a-a7cb935f00bd"
|
66
|
-
response[0].Status.should == "Delivered"
|
64
|
+
response.length.should be == 1
|
65
|
+
response[0].MessageID.should be == "ddc697c7-0788-4df3-a71a-a7cb935f00bd"
|
66
|
+
response[0].Status.should be == "Delivered"
|
67
67
|
end
|
68
68
|
|
69
69
|
should "get the message timeline for a classic group" do
|
@@ -76,32 +76,32 @@ class TransactionalTimelineTest < Test::Unit::TestCase
|
|
76
76
|
"group" => 'Password Reset',
|
77
77
|
"clientID" => @client_id
|
78
78
|
)
|
79
|
-
response.length.should == 1
|
80
|
-
response[0].Group.should == "Password Reset"
|
81
|
-
response[0].Status.should == "Delivered"
|
79
|
+
response.length.should be == 1
|
80
|
+
response[0].Group.should be == "Password Reset"
|
81
|
+
response[0].Status.should be == "Delivered"
|
82
82
|
end
|
83
83
|
|
84
84
|
should "get the message details" do
|
85
85
|
stub_get(@auth, "transactional/messages/#{@message_id}", "tx_message_details.json")
|
86
86
|
response = CreateSend::Transactional::Timeline.new(@auth).details(@message_id)
|
87
|
-
response.TotalOpens.should == 1
|
88
|
-
response.TotalClicks.should == 1
|
87
|
+
response.TotalOpens.should be == 1
|
88
|
+
response.TotalClicks.should be == 1
|
89
89
|
end
|
90
90
|
|
91
91
|
should "get the message details with statistics" do
|
92
92
|
stub_get(@auth, "transactional/messages/#{@message_id}?statistics=true", "tx_message_details_with_statistics.json")
|
93
93
|
response = CreateSend::Transactional::Timeline.new(@auth).details(@message_id, :statistics => true)
|
94
|
-
response.Opens.length == 1
|
95
|
-
response.Clicks.length == 1
|
94
|
+
response.Opens.length.should be == 1
|
95
|
+
response.Clicks.length.should be == 1
|
96
96
|
end
|
97
97
|
|
98
98
|
should "resend a message" do
|
99
99
|
stub_post(@auth, "transactional/messages/#{@message_id}/resend", "tx_send_single.json")
|
100
100
|
response = CreateSend::Transactional::Timeline.new(@auth).resend(@message_id)
|
101
|
-
response.length.should == 1
|
102
|
-
response[0].MessageID.should == "0cfe150d-d507-11e4-84a7-c31e5b59881d"
|
103
|
-
response[0].Recipient.should == "\"Bob Sacamano\" <bob@example.com>"
|
104
|
-
response[0].Status.should == "Received"
|
101
|
+
response.length.should be == 1
|
102
|
+
response[0].MessageID.should be == "0cfe150d-d507-11e4-84a7-c31e5b59881d"
|
103
|
+
response[0].Recipient.should be == "\"Bob Sacamano\" <bob@example.com>"
|
104
|
+
response[0].Status.should be == "Received"
|
105
105
|
end
|
106
106
|
|
107
107
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: createsend
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Dennes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-10-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -189,7 +189,7 @@ files:
|
|
189
189
|
- samples/journey_sample.rb
|
190
190
|
- samples/lists_sample.rb
|
191
191
|
- samples/segments_sample.rb
|
192
|
-
- samples/
|
192
|
+
- samples/subscribers_sample.rb
|
193
193
|
- test/administrator_test.rb
|
194
194
|
- test/campaign_test.rb
|
195
195
|
- test/client_test.rb
|
@@ -259,7 +259,7 @@ files:
|
|
259
259
|
- test/fixtures/segment_subscribers.json
|
260
260
|
- test/fixtures/segments.json
|
261
261
|
- test/fixtures/subscriber_details.json
|
262
|
-
- test/fixtures/
|
262
|
+
- test/fixtures/subscriber_details_with_track_and_sms_pref.json
|
263
263
|
- test/fixtures/subscriber_history.json
|
264
264
|
- test/fixtures/suppressionlist.json
|
265
265
|
- test/fixtures/systemdate.json
|
@@ -313,7 +313,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
313
313
|
- !ruby/object:Gem::Version
|
314
314
|
version: 1.3.6
|
315
315
|
requirements: []
|
316
|
-
rubygems_version: 3.
|
316
|
+
rubygems_version: 3.2.22
|
317
317
|
signing_key:
|
318
318
|
specification_version: 4
|
319
319
|
summary: A library which implements the complete functionality of the Campaign Monitor
|
@@ -1,22 +0,0 @@
|
|
1
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
-
require 'createsend'
|
3
|
-
|
4
|
-
class SubscribersSample
|
5
|
-
def initialize
|
6
|
-
raise 'CREATESEND_ACCESS_TOKEN env var missing' if ENV['CREATESEND_ACCESS_TOKEN'].nil?
|
7
|
-
raise 'CREATESEND_REFRESH_TOKEN env var missing' if ENV['CREATESEND_REFRESH_TOKEN'].nil?
|
8
|
-
raise 'CREATESEND_LIST_ID env var missing' if ENV['CREATESEND_LIST_ID'].nil?
|
9
|
-
raise 'CREATESEND_EMAIL_ADDRESS env var missing' if ENV['CREATESEND_EMAIL_ADDRESS'].nil?
|
10
|
-
|
11
|
-
auth = {:access_token => ENV['CREATESEND_ACCESS_TOKEN'], :refresh_token => ENV['CREATESEND_REFRESH_TOKEN']}
|
12
|
-
@subscriber = CreateSend::Subscriber.get auth, ENV['CREATESEND_LIST_ID'], ENV['CREATESEND_EMAIL_ADDRESS']
|
13
|
-
end
|
14
|
-
|
15
|
-
def get_subscriber
|
16
|
-
@subscriber
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
sample = SubscribersSample.new
|
21
|
-
|
22
|
-
puts "detailed subscribers: #{sample.get_subscriber.to_json}\n\n"
|