litmus-reseller 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +14 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +118 -0
- data/Rakefile +3 -0
- data/lib/generators/litmus_reseller/install_generator.rb +15 -0
- data/lib/generators/litmus_reseller/templates/litmus-reseller.rb +4 -0
- data/lib/litmus-reseller.rb +9 -0
- data/lib/litmus-reseller/configuration.rb +19 -0
- data/lib/litmus-reseller/email_test.rb +23 -0
- data/lib/litmus-reseller/engine.rb +6 -0
- data/lib/litmus-reseller/result.rb +14 -0
- data/lib/litmus-reseller/version.rb +3 -0
- data/litmus-reseller.gemspec +27 -0
- data/spec/configuration_spec.rb +40 -0
- data/spec/email_test_spec.rb +59 -0
- data/spec/result_spec.rb +18 -0
- data/spec/spec_helper.rb +39 -0
- data/tasks/rspec.rake +3 -0
- metadata +137 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 1040ff1b127f0ac7395be7d68f6a8e8f5cd11d5e
|
4
|
+
data.tar.gz: d230ac21cf7d7b3bae7d9f56aa37353dbd51570e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: eee90d58af2d456ed9609de17bb2ece2838be1a40224e57291ce1d664cf3d2fd1d6123387dc1ec988afb4161d5bfa2f1083c25e094375657a6b3d762c2fae918
|
7
|
+
data.tar.gz: 5f25922c29cea06ac1d0538ebf3740842f14bd3fbd0dcdf61af2a55fc13647a263c7ae4f89f8a4656d42586069864b9c66d38d8778aa9a7f6555ba3956336232
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2015 Damien Brzoska
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,118 @@
|
|
1
|
+
# Litmus::Reseller
|
2
|
+
|
3
|
+
Reseller Apis are only for use with a reseller account. They do not work with a regular Litmus account.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
To get started, add 'listmus-reseller' to your `Gemfile`, run `bundle install`, and run the generator:
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
rails generate litmus_reseller:install
|
11
|
+
```
|
12
|
+
|
13
|
+
The generator will create an initializer to allow configuration
|
14
|
+
|
15
|
+
## Configuration
|
16
|
+
|
17
|
+
Override any of these defaults in `config/initializers/litmus-reseller.rb`:
|
18
|
+
|
19
|
+
```ruby
|
20
|
+
LitmusReseller.configure do |config|
|
21
|
+
config.username = nil
|
22
|
+
config.password = nil
|
23
|
+
end
|
24
|
+
```
|
25
|
+
|
26
|
+
## Usage
|
27
|
+
|
28
|
+
### Create a test
|
29
|
+
|
30
|
+
Create an EmailTest and get a result back:
|
31
|
+
|
32
|
+
```ruby
|
33
|
+
# All applications
|
34
|
+
response = LitmusReseller::EmailTest.create([])
|
35
|
+
# Custom applications
|
36
|
+
response = LitmusReseller::EmailTest.create(['ol2010', 'iphone5s'])
|
37
|
+
# Custom guid
|
38
|
+
response = LitmusReseller::EmailTest.create([], 'custom-guid')
|
39
|
+
```
|
40
|
+
|
41
|
+
The response will look like this:
|
42
|
+
|
43
|
+
```ruby
|
44
|
+
{ "TestingApplications" :
|
45
|
+
[
|
46
|
+
{
|
47
|
+
"ApplicationLongName" : "Outlook 2010",
|
48
|
+
"ApplicationName" : "ol2010",
|
49
|
+
"AverageTimeToProcess" : 0,
|
50
|
+
"BusinessOrPopular" : true,
|
51
|
+
"Completed" : null,
|
52
|
+
"DesktopClient" : true,
|
53
|
+
"FoundInSpam" : null,
|
54
|
+
"FullpageImage" : null,
|
55
|
+
"FullpageImageContentBlocking" : null,
|
56
|
+
"FullpageImageNoContentBlocking" : null,
|
57
|
+
"FullpageImageThumb" : null,
|
58
|
+
"FullpageImageThumbContentBlocking" : null,
|
59
|
+
"FullpageImageThumbNoContentBlocking" : null,
|
60
|
+
"Id" : 0,
|
61
|
+
"PlatformLongName" : "",
|
62
|
+
"PlatformName" : "",
|
63
|
+
"RenderedHtmlUrl" : null,
|
64
|
+
"ResultType" : 0,
|
65
|
+
"SpamHeaders" : null,
|
66
|
+
"SpamScore" : 0,
|
67
|
+
"State" : null,
|
68
|
+
"Status" : 0,
|
69
|
+
"SupportsContentBlocking" : false,
|
70
|
+
"SupportsSpamScoring" : null,
|
71
|
+
"WindowImage" : null,
|
72
|
+
"WindowImageContentBlocking" : null,
|
73
|
+
"WindowImageNoContentBlocking" : null,
|
74
|
+
"WindowImageThumb" : null,
|
75
|
+
"WindowImageThumbContentBlocking" : null,
|
76
|
+
"WindowImageThumbNoContentBlocking" : null
|
77
|
+
},
|
78
|
+
{...}
|
79
|
+
],
|
80
|
+
"State" : "waiting",
|
81
|
+
"InboxGuid" : "test12345",
|
82
|
+
"Id" : 19498721,
|
83
|
+
"Source" : "https://s3.amazonaws.com/sitevista/",
|
84
|
+
"Subject" : "",
|
85
|
+
"Html" : "https://html.litmus.com/email/?url=/sitevista/",
|
86
|
+
"ZipFile" : "http://zip.litmus.com/resellers/?guid=e03c3e66-ba5b-4ed5-916a-c58c2b763d40",
|
87
|
+
"TestType" : 0,
|
88
|
+
"Sandbox" : false,
|
89
|
+
"UserGuid" : nil,
|
90
|
+
"Error" : false,
|
91
|
+
"ErrorMessage" : nil
|
92
|
+
}
|
93
|
+
```
|
94
|
+
|
95
|
+
Send your email to a unique email address you get from the `emai_test`:
|
96
|
+
|
97
|
+
```ruby
|
98
|
+
to_address = "#{response["InboxGuid"]@emailtests.com}"
|
99
|
+
mail(to: to_address, subject: "Subject line")
|
100
|
+
```
|
101
|
+
|
102
|
+
Poll the api periodically to see if your previews are complete
|
103
|
+
|
104
|
+
```ruby
|
105
|
+
results = LitmusReseller::Result.show(response["id"])
|
106
|
+
while results["status"] != "complete" do
|
107
|
+
results = LitmusReseller::Result.show(response["id"])
|
108
|
+
wait 60
|
109
|
+
end
|
110
|
+
```
|
111
|
+
|
112
|
+
## Contributing
|
113
|
+
|
114
|
+
1. Fork it ( https://github.com/[my-github-username]/litmus-reseller/fork )
|
115
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
116
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
117
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
118
|
+
5. Create a new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'rails/generators/base'
|
2
|
+
require 'rails/generators/active_record'
|
3
|
+
|
4
|
+
module LitmusReseller
|
5
|
+
module Generators
|
6
|
+
class InstallGenerator < Rails::Generators::Base
|
7
|
+
desc "Generate initializers file"
|
8
|
+
source_root File.expand_path('../templates', __FILE__)
|
9
|
+
|
10
|
+
def create_litmus_reseller_initializer
|
11
|
+
copy_file 'litmus-reseller.rb', 'config/initializers/litmus-reseller.rb'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module LitmusReseller
|
2
|
+
class << self
|
3
|
+
attr_accessor :configuration
|
4
|
+
end
|
5
|
+
|
6
|
+
def self.configure
|
7
|
+
self.configuration ||= Configuration.new
|
8
|
+
yield(configuration)
|
9
|
+
end
|
10
|
+
|
11
|
+
class Configuration
|
12
|
+
attr_accessor :username, :password
|
13
|
+
|
14
|
+
def initialize
|
15
|
+
@username = nil
|
16
|
+
@password = nil
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module LitmusReseller
|
2
|
+
class EmailTest
|
3
|
+
include HTTParty
|
4
|
+
base_uri "https://previews-api.litmus.com"
|
5
|
+
|
6
|
+
def self.create(applications = [], guid = nil)
|
7
|
+
raise "Missing configuration" unless LitmusReseller.configuration.username && LitmusReseller.configuration.password
|
8
|
+
|
9
|
+
basic_auth(LitmusReseller.configuration.username, LitmusReseller.configuration.password)
|
10
|
+
response = post('/api/v1/EmailTests', body: build_params(applications, guid), headers: { "Content-type" => "application/json" })
|
11
|
+
JSON.parse(response.body)
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def self.build_params(applications, guid)
|
17
|
+
testing_applications = { "TestingApplications" => []}
|
18
|
+
applications.each { |app| testing_applications["TestingApplications"] << { "ApplicationName" => app } }
|
19
|
+
testing_applications["UserGuid"] = guid if guid
|
20
|
+
testing_applications.to_json
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module LitmusReseller
|
2
|
+
class Result
|
3
|
+
include HTTParty
|
4
|
+
base_uri "https://previews-api.litmus.com"
|
5
|
+
|
6
|
+
def self.show(id)
|
7
|
+
raise "Missing configuration" unless LitmusReseller.configuration.username && LitmusReseller.configuration.password
|
8
|
+
|
9
|
+
basic_auth(LitmusReseller.configuration.username, LitmusReseller.configuration.password)
|
10
|
+
response = get("/api/v1/EmailTests/#{id}", headers: { "Content-type" => "application/json" })
|
11
|
+
JSON.parse(response.body)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'litmus-reseller/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "litmus-reseller"
|
8
|
+
spec.version = LitmusReseller::VERSION
|
9
|
+
spec.authors = ["Damien Brzoska"]
|
10
|
+
spec.email = ["damien.brz@gmail.com"]
|
11
|
+
spec.description = "A simple wrapper around the Litmus reseller API."
|
12
|
+
spec.summary = ""
|
13
|
+
spec.homepage = ""
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_dependency "httparty"
|
22
|
+
|
23
|
+
spec.add_development_dependency "bundler", "~> 1.7"
|
24
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
25
|
+
spec.add_development_dependency "rspec"
|
26
|
+
spec.add_development_dependency "webmock"
|
27
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe LitmusReseller::Configuration do
|
4
|
+
after { restore_default_config }
|
5
|
+
|
6
|
+
describe "when a username" do
|
7
|
+
context "is specified" do
|
8
|
+
before do
|
9
|
+
LitmusReseller.configure do |config|
|
10
|
+
config.username = 'damienbrz'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should use the new username" do
|
15
|
+
expect(LitmusReseller.configuration.username).to eq 'damienbrz'
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "when a password" do
|
21
|
+
context "is specified" do
|
22
|
+
before do
|
23
|
+
LitmusReseller.configure do |config|
|
24
|
+
config.password = 'T3st12&34'
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should use the new password" do
|
29
|
+
expect(LitmusReseller.configuration.password).to eq 'T3st12&34'
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "default configuration" do
|
35
|
+
it "should use default values" do
|
36
|
+
expect(LitmusReseller.configuration.username).to be_nil
|
37
|
+
expect(LitmusReseller.configuration.password).to be_nil
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe LitmusReseller::EmailTest do
|
4
|
+
after { restore_default_config }
|
5
|
+
|
6
|
+
describe "when configuration (username and password) is set" do
|
7
|
+
before do
|
8
|
+
LitmusReseller.configure do |config|
|
9
|
+
config.username = 'username'
|
10
|
+
config.password = 'password'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
context "without params" do
|
15
|
+
it "should return the email address InboxGuid@emailtests.com" do
|
16
|
+
response = LitmusReseller::EmailTest.create()
|
17
|
+
expect(response["InboxGuid"]).to eq("test12345")
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
context "with applications" do
|
22
|
+
it "should return the email address InboxGuid@emailtests.com" do
|
23
|
+
response = LitmusReseller::EmailTest.create(['ol2010'])
|
24
|
+
expect(response["InboxGuid"]).to eq("test12345")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
context "with guid" do
|
29
|
+
it "should return the email address InboxGuid@emailtests.com" do
|
30
|
+
response = LitmusReseller::EmailTest.create([], "custom-guid")
|
31
|
+
expect(response["InboxGuid"]).to eq("custom-guid")
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe "when configuration (username and password) is not set" do
|
37
|
+
context "username missing" do
|
38
|
+
before do
|
39
|
+
LitmusReseller.configure do |config|
|
40
|
+
config.password = 'password'
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should raise an error" do
|
45
|
+
expect { LitmusReseller::EmailTest.create() }.to raise_error(RuntimeError, "Missing configuration")
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
context "password missing" do
|
50
|
+
LitmusReseller.configure do |config|
|
51
|
+
config.username = 'damienbrz'
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should raise an error" do
|
55
|
+
expect { LitmusReseller::EmailTest.create() }.to raise_error(RuntimeError, "Missing configuration")
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
data/spec/result_spec.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# results = LitmusReseller::Results.get(email_test.guid)
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe LitmusReseller::Result do
|
5
|
+
after { restore_default_config }
|
6
|
+
|
7
|
+
before do
|
8
|
+
LitmusReseller.configure do |config|
|
9
|
+
config.username = 'username'
|
10
|
+
config.password = 'password'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should return with an array of TestingApplications" do
|
15
|
+
response = LitmusReseller::Result.show(19498721)
|
16
|
+
expect(response["State"]).to eq("completed")
|
17
|
+
end
|
18
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'litmus-reseller'
|
2
|
+
require 'webmock/rspec'
|
3
|
+
|
4
|
+
def restore_default_config
|
5
|
+
LitmusReseller.configuration = nil
|
6
|
+
LitmusReseller.configure {}
|
7
|
+
end
|
8
|
+
|
9
|
+
WebMock.disable_net_connect!(allow_localhost: true)
|
10
|
+
|
11
|
+
RSpec.configure do |config|
|
12
|
+
config.before(:each) do
|
13
|
+
|
14
|
+
valid_post_response = "{\"TestingApplications\":[{\"State\":\"pending\",\"WindowImageContentBlocking\":\"s3.amazonaws.com\",\"FullpageImageThumb\":\"s3.amazonaws.com\",\"BusinessOrPopular\":true,\"WindowImageThumbNoContentBlocking\":\"s3.amazonaws.com\",\"Completed\":false,\"FullpageImage\":\"s3.amazonaws.com\",\"FoundInSpam\":false,\"SupportsSpamScoring\":null,\"Status\":0,\"WindowImageNoContentBlocking\":\"s3.amazonaws.com\",\"PlatformName\":\"Windows\",\"AverageTimeToProcess\":489,\"SpamHeaders\":[],\"WindowImageThumb\":\"s3.amazonaws.com\",\"RenderedHtmlUrl\":null,\"PlatformLongName\":\"Microsoft Windows\",\"FullpageImageThumbContentBlocking\":\"s3.amazonaws.com\",\"WindowImage\":\"s3.amazonaws.com\",\"FullpageImageContentBlocking\":\"s3.amazonaws.com\",\"SupportsContentBlocking\":true,\"ApplicationName\":\"OL2010\",\"FullpageImageThumbNoContentBlocking\":\"s3.amazonaws.com\",\"SpamScore\":0.0,\"DesktopClient\":true,\"WindowImageThumbContentBlocking\":\"s3.amazonaws.com\",\"Id\":560265637,\"ResultType\":0,\"FullpageImageNoContentBlocking\":\"s3.amazonaws.com\",\"ApplicationLongName\":\"Outlook 2010\"}],\"State\":\"waiting\",\"InboxGuid\":\"test12345\",\"Id\":19498721,\"Source\":\"https://s3.amazonaws.com/sitevista/\",\"Subject\":\"\",\"Html\":\"https://html.litmus.com/email/?url=/sitevista/\",\"ZipFile\":\"http://zip.litmus.com/resellers/?guid=e03c3e66-ba5b-4ed5-916a-c58c2b763d40\",\"TestType\":0,\"Sandbox\":false,\"UserGuid\":null,\"Error\":false,\"ErrorMessage\":null}"
|
15
|
+
|
16
|
+
custom_response = "{\"InboxGuid\":\"custom-guid\"}"
|
17
|
+
|
18
|
+
valid_get_response = "{\"TestingApplications\":[{\"State\":\"completed\",\"WindowImageContentBlocking\":\"s3.amazonaws.com\",\"FullpageImageThumb\":\"s3.amazonaws.com\",\"BusinessOrPopular\":true,\"WindowImageThumbNoContentBlocking\":\"s3.amazonaws.com\",\"Completed\":false,\"FullpageImage\":\"s3.amazonaws.com\",\"FoundInSpam\":false,\"SupportsSpamScoring\":null,\"Status\":0,\"WindowImageNoContentBlocking\":\"s3.amazonaws.com\",\"PlatformName\":\"Windows\",\"AverageTimeToProcess\":489,\"SpamHeaders\":[],\"WindowImageThumb\":\"s3.amazonaws.com\",\"RenderedHtmlUrl\":null,\"PlatformLongName\":\"Microsoft Windows\",\"FullpageImageThumbContentBlocking\":\"s3.amazonaws.com\",\"WindowImage\":\"s3.amazonaws.com\",\"FullpageImageContentBlocking\":\"s3.amazonaws.com\",\"SupportsContentBlocking\":true,\"ApplicationName\":\"OL2010\",\"FullpageImageThumbNoContentBlocking\":\"s3.amazonaws.com\",\"SpamScore\":0.0,\"DesktopClient\":true,\"WindowImageThumbContentBlocking\":\"s3.amazonaws.com\",\"Id\":560265637,\"ResultType\":0,\"FullpageImageNoContentBlocking\":\"s3.amazonaws.com\",\"ApplicationLongName\":\"Outlook 2010\"}],\"State\":\"completed\",\"InboxGuid\":\"test12345\",\"Id\":19498721,\"Source\":\"https://s3.amazonaws.com/sitevista/\",\"Subject\":\"\",\"Html\":\"https://html.litmus.com/email/?url=/sitevista/\",\"ZipFile\":\"http://zip.litmus.com/resellers/?guid=e03c3e66-ba5b-4ed5-916a-c58c2b763d40\",\"TestType\":0,\"Sandbox\":false,\"UserGuid\":null,\"Error\":false,\"ErrorMessage\":null}"
|
19
|
+
|
20
|
+
stub_request(:post, "https://username:password@previews-api.litmus.com/api/v1/EmailTests").
|
21
|
+
with(:body => "{\"TestingApplications\":[]}",
|
22
|
+
:headers => {'Content-Type'=>'application/json'}).
|
23
|
+
to_return(:status => 200, :body => valid_post_response, :headers => {})
|
24
|
+
|
25
|
+
stub_request(:post, "https://username:password@previews-api.litmus.com/api/v1/EmailTests").
|
26
|
+
with(:body => "{\"TestingApplications\":[{\"ApplicationName\":\"ol2010\"}]}",
|
27
|
+
:headers => {'Content-Type'=>'application/json'}).
|
28
|
+
to_return(:status => 200, :body => valid_post_response, :headers => {})
|
29
|
+
|
30
|
+
stub_request(:post, "https://username:password@previews-api.litmus.com/api/v1/EmailTests").
|
31
|
+
with(:body => "{\"TestingApplications\":[],\"UserGuid\":\"custom-guid\"}",
|
32
|
+
:headers => {'Content-Type'=>'application/json'}).
|
33
|
+
to_return(:status => 200, :body => custom_response, :headers => {})
|
34
|
+
|
35
|
+
stub_request(:get, "https://username:password@previews-api.litmus.com/api/v1/EmailTests/19498721").
|
36
|
+
with(:body => "", :headers => {'Content-Type'=>'application/json'}).
|
37
|
+
to_return(:status => 200, :body => valid_get_response, :headers => {})
|
38
|
+
end
|
39
|
+
end
|
data/tasks/rspec.rake
ADDED
metadata
ADDED
@@ -0,0 +1,137 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: litmus-reseller
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Damien Brzoska
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-02-04 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: httparty
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.7'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.7'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '10.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '10.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: webmock
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
description: A simple wrapper around the Litmus reseller API.
|
84
|
+
email:
|
85
|
+
- damien.brz@gmail.com
|
86
|
+
executables: []
|
87
|
+
extensions: []
|
88
|
+
extra_rdoc_files: []
|
89
|
+
files:
|
90
|
+
- ".gitignore"
|
91
|
+
- Gemfile
|
92
|
+
- LICENSE.txt
|
93
|
+
- README.md
|
94
|
+
- Rakefile
|
95
|
+
- lib/generators/litmus_reseller/install_generator.rb
|
96
|
+
- lib/generators/litmus_reseller/templates/litmus-reseller.rb
|
97
|
+
- lib/litmus-reseller.rb
|
98
|
+
- lib/litmus-reseller/configuration.rb
|
99
|
+
- lib/litmus-reseller/email_test.rb
|
100
|
+
- lib/litmus-reseller/engine.rb
|
101
|
+
- lib/litmus-reseller/result.rb
|
102
|
+
- lib/litmus-reseller/version.rb
|
103
|
+
- litmus-reseller.gemspec
|
104
|
+
- spec/configuration_spec.rb
|
105
|
+
- spec/email_test_spec.rb
|
106
|
+
- spec/result_spec.rb
|
107
|
+
- spec/spec_helper.rb
|
108
|
+
- tasks/rspec.rake
|
109
|
+
homepage: ''
|
110
|
+
licenses:
|
111
|
+
- MIT
|
112
|
+
metadata: {}
|
113
|
+
post_install_message:
|
114
|
+
rdoc_options: []
|
115
|
+
require_paths:
|
116
|
+
- lib
|
117
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
118
|
+
requirements:
|
119
|
+
- - ">="
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: '0'
|
122
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
123
|
+
requirements:
|
124
|
+
- - ">="
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '0'
|
127
|
+
requirements: []
|
128
|
+
rubyforge_project:
|
129
|
+
rubygems_version: 2.2.2
|
130
|
+
signing_key:
|
131
|
+
specification_version: 4
|
132
|
+
summary: ''
|
133
|
+
test_files:
|
134
|
+
- spec/configuration_spec.rb
|
135
|
+
- spec/email_test_spec.rb
|
136
|
+
- spec/result_spec.rb
|
137
|
+
- spec/spec_helper.rb
|