postageapp 1.3.0 → 1.4.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 +5 -5
- data/.gitignore +6 -0
- data/.travis.yml +9 -39
- data/{LICENSE → LICENSE.md} +1 -1
- data/README.md +117 -13
- data/Rakefile +15 -4
- data/VERSION +1 -0
- data/app/ingresses/action_mailbox/ingresses/postage_app/inbound_emails_controller.rb +52 -0
- data/app/ingresses/action_mailbox/ingresses/postage_app.rb +4 -0
- data/config/routes.rb +8 -0
- data/exe/postageapp +37 -0
- data/lib/generators/postageapp/postageapp_generator.rb +9 -6
- data/lib/postageapp/cli/command/config.rb +74 -0
- data/lib/postageapp/cli/command/create_mailbox.rb +21 -0
- data/lib/postageapp/cli/command/env.rb +58 -0
- data/lib/postageapp/cli/command/get_project_info.rb +3 -0
- data/lib/postageapp/cli/command.rb +110 -0
- data/lib/postageapp/cli.rb +14 -0
- data/lib/postageapp/configuration.rb +237 -74
- data/lib/postageapp/engine.rb +11 -0
- data/lib/postageapp/env.rb +9 -0
- data/lib/postageapp/mailer/mailer_4.rb +30 -14
- data/lib/postageapp/mailer.rb +1 -11
- data/lib/postageapp/rails/railtie.rb +1 -3
- data/lib/postageapp/request.rb +6 -1
- data/lib/postageapp.rb +53 -35
- data/log/.gitignore +1 -0
- data/postageapp.gemspec +7 -10
- data/script/with +2 -2
- data/test/gemfiles/Gemfile.rails-2.3.x +1 -1
- data/test/gemfiles/Gemfile.rails-3.0.x +1 -1
- data/test/gemfiles/Gemfile.rails-3.1.x +1 -1
- data/test/gemfiles/Gemfile.rails-3.2.x +1 -1
- data/test/gemfiles/Gemfile.rails-4.0.x +1 -1
- data/test/gemfiles/Gemfile.rails-4.1.x +1 -1
- data/test/gemfiles/Gemfile.rails-4.2.x +1 -2
- data/test/gemfiles/Gemfile.rails-5.0.x +2 -3
- data/test/gemfiles/Gemfile.rails-5.2.x +12 -0
- data/test/gemfiles/Gemfile.rails-6.0.x +12 -0
- data/test/gemfiles/Gemfile.rails-6.1.x +12 -0
- data/test/gemfiles/Gemfile.ruby +2 -3
- data/test/helper.rb +5 -3
- data/test/log/.gitignore +1 -0
- data/test/mailer/action_mailer_3/notifier.rb +1 -1
- data/test/tmp/.gitignore +1 -0
- data/test/travis_test.rb +58 -40
- data/test/{configuration_test.rb → unit/configuration_test.rb} +18 -12
- data/test/{failed_request_test.rb → unit/failed_request_test.rb} +6 -6
- data/test/{live_test.rb → unit/live_test.rb} +4 -39
- data/test/{mail_delivery_method_test.rb → unit/mail_delivery_method_test.rb} +1 -1
- data/test/{mailer_4_test.rb → unit/mailer_4_test.rb} +2 -2
- data/test/{mailer_helper_methods_test.rb → unit/mailer_helper_methods_test.rb} +4 -4
- data/test/{postageapp_test.rb → unit/postageapp_test.rb} +7 -1
- data/test/{rails_initialization_test.rb → unit/rails_initialization_test.rb} +2 -2
- data/test/{request_test.rb → unit/request_test.rb} +18 -17
- data/test/{response_test.rb → unit/response_test.rb} +4 -4
- data/test/unit/tmp/.gitignore +1 -0
- data/tmp/.gitignore +1 -0
- metadata +41 -48
- data/lib/postageapp/mailer/mailer_2.rb +0 -140
- data/lib/postageapp/mailer/mailer_3.rb +0 -190
- data/lib/postageapp/version.rb +0 -3
- data/test/mailer/action_mailer_2/notifier/with_body_and_attachment.erb +0 -1
- data/test/mailer/action_mailer_2/notifier/with_custom_postage_variables.text.html.erb +0 -1
- data/test/mailer/action_mailer_2/notifier/with_custom_postage_variables.text.plain.erb +0 -1
- data/test/mailer/action_mailer_2/notifier/with_html_and_text_views.text.html.erb +0 -1
- data/test/mailer/action_mailer_2/notifier/with_html_and_text_views.text.plain.erb +0 -1
- data/test/mailer/action_mailer_2/notifier/with_simple_view.erb +0 -1
- data/test/mailer/action_mailer_2/notifier/with_text_only_view.text.plain.erb +0 -1
- data/test/mailer/action_mailer_2/notifier.rb +0 -77
- data/test/mailer_2_test.rb +0 -95
- data/test/mailer_3_test.rb +0 -118
    
        data/test/helper.rb
    CHANGED
    
    | @@ -10,8 +10,10 @@ Minitest::Reporters.use!(Minitest::Reporters::SpecReporter.new) | |
| 10 10 |  | 
| 11 11 | 
             
            require 'fileutils'
         | 
| 12 12 |  | 
| 13 | 
            -
            $LOAD_PATH.unshift( | 
| 14 | 
            -
            $LOAD_PATH.unshift(File.join( | 
| 13 | 
            +
            $LOAD_PATH.unshift(__dir__)
         | 
| 14 | 
            +
            $LOAD_PATH.unshift(File.join(__dir__, '..', 'lib'))
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            ENV['POSTAGEAPP_API_KEY'] ||= '__TEST_API_KEY__'
         | 
| 15 17 |  | 
| 16 18 | 
             
            require 'mail'
         | 
| 17 19 |  | 
| @@ -45,7 +47,7 @@ class MiniTest::Test | |
| 45 47 | 
             
              def setup
         | 
| 46 48 | 
             
                # Resetting to default configuration
         | 
| 47 49 |  | 
| 48 | 
            -
                PostageApp.configure(: | 
| 50 | 
            +
                PostageApp.configure(reset: true) do |config|
         | 
| 49 51 | 
             
                  config.requests_to_resend = %w( send_message )
         | 
| 50 52 | 
             
                  config.project_root = File.expand_path('../', __FILE__)
         | 
| 51 53 | 
             
                  config.logger = nil
         | 
    
        data/test/log/.gitignore
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            *
         | 
    
        data/test/tmp/.gitignore
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            *
         | 
    
        data/test/travis_test.rb
    CHANGED
    
    | @@ -1,15 +1,18 @@ | |
| 1 1 | 
             
            #!/usr/bin/env ruby
         | 
| 2 2 |  | 
| 3 3 | 
             
            require 'yaml'
         | 
| 4 | 
            +
            require 'open3'
         | 
| 5 | 
            +
            require 'shellwords'
         | 
| 4 6 |  | 
| 5 | 
            -
             | 
| 7 | 
            +
            require_relative './with_environment'
         | 
| 6 8 |  | 
| 7 9 | 
             
            class TravisTest
         | 
| 8 10 | 
             
              extend WithEnvironment
         | 
| 9 11 |  | 
| 10 12 | 
             
              ENV_VARIABLE = {
         | 
| 11 | 
            -
                : | 
| 12 | 
            -
                : | 
| 13 | 
            +
                rvm: 'RBENV_VERSION',
         | 
| 14 | 
            +
                version: 'RBENV_VERSION',
         | 
| 15 | 
            +
                gemfile: 'BUNDLE_GEMFILE'
         | 
| 13 16 | 
             
              }
         | 
| 14 17 |  | 
| 15 18 | 
             
              def self.bash_env(env)
         | 
| @@ -20,30 +23,44 @@ class TravisTest | |
| 20 23 | 
             
                end.compact.join(' ')
         | 
| 21 24 | 
             
              end
         | 
| 22 25 |  | 
| 23 | 
            -
              def self. | 
| 24 | 
            -
                 | 
| 25 | 
            -
                   | 
| 26 | 
            -
             | 
| 27 | 
            -
                  end
         | 
| 28 | 
            -
                ]
         | 
| 26 | 
            +
              def self.environment(env)
         | 
| 27 | 
            +
                env.map do |key, value|
         | 
| 28 | 
            +
                  [ ENV_VARIABLE[key], value ]
         | 
| 29 | 
            +
                end.to_h
         | 
| 29 30 | 
             
              end
         | 
| 30 31 |  | 
| 31 | 
            -
              def self. | 
| 32 | 
            -
                commands =  | 
| 32 | 
            +
              def self.shell!(commands, env)
         | 
| 33 | 
            +
                commands = commands.collect do |s|
         | 
| 33 34 | 
             
                  s % env
         | 
| 34 35 | 
             
                end
         | 
| 35 36 |  | 
| 36 | 
            -
                 | 
| 37 | 
            -
                   | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 40 | 
            -
                
         | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 37 | 
            +
                shell_cmds = [
         | 
| 38 | 
            +
                  'eval "$(rbenv init -)"',
         | 
| 39 | 
            +
                  'set -e',
         | 
| 40 | 
            +
                  *commands
         | 
| 41 | 
            +
                ].join('; ')
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                # p environment(env)
         | 
| 44 | 
            +
                # puts shell_cmds
         | 
| 45 | 
            +
             | 
| 46 | 
            +
                Open3.popen3(
         | 
| 47 | 
            +
                  environment(env),
         | 
| 48 | 
            +
                  shell_cmds
         | 
| 49 | 
            +
                ) do |_sin, sout, serr, proc|
         | 
| 50 | 
            +
                  status = proc.value.exitstatus
         | 
| 43 51 |  | 
| 44 | 
            -
                  yield( | 
| 52 | 
            +
                  yield(status) if (block_given?)
         | 
| 45 53 |  | 
| 46 | 
            -
                   | 
| 54 | 
            +
                  status.tap do |status|
         | 
| 55 | 
            +
                    if (status != 0)
         | 
| 56 | 
            +
                      $stderr.puts 'Error code: %d' % status
         | 
| 57 | 
            +
                    end
         | 
| 58 | 
            +
             | 
| 59 | 
            +
                    if (status != 0 or ENV['VERBOSE'])
         | 
| 60 | 
            +
                      puts sout.read
         | 
| 61 | 
            +
                      puts serr.read
         | 
| 62 | 
            +
                    end
         | 
| 63 | 
            +
                  end
         | 
| 47 64 | 
             
                end
         | 
| 48 65 | 
             
              end
         | 
| 49 66 |  | 
| @@ -52,15 +69,15 @@ class TravisTest | |
| 52 69 |  | 
| 53 70 | 
             
                travis_test.matrix.collect do |entry|
         | 
| 54 71 | 
             
                  {
         | 
| 55 | 
            -
                    : | 
| 72 | 
            +
                    rvm: entry[:rvm]
         | 
| 56 73 | 
             
                  }
         | 
| 57 74 | 
             
                end.uniq.each do |entry|
         | 
| 58 | 
            -
                  puts  | 
| 75 | 
            +
                  puts 'Ruby %{rvm}' % entry
         | 
| 59 76 |  | 
| 60 | 
            -
                   | 
| 77 | 
            +
                  shell!(
         | 
| 61 78 | 
             
                    [
         | 
| 62 | 
            -
                       | 
| 63 | 
            -
                       | 
| 79 | 
            +
                      'rbenv install %{version}',
         | 
| 80 | 
            +
                      'gem install bundler'
         | 
| 64 81 | 
             
                    ],
         | 
| 65 82 | 
             
                    entry
         | 
| 66 83 | 
             
                  )
         | 
| @@ -77,9 +94,9 @@ class TravisTest | |
| 77 94 |  | 
| 78 95 | 
             
                  versions[entry[:rvm]] = true
         | 
| 79 96 |  | 
| 80 | 
            -
                   | 
| 97 | 
            +
                  shell!(
         | 
| 81 98 | 
             
                    [
         | 
| 82 | 
            -
                       | 
| 99 | 
            +
                      %q[ruby -e 'puts RUBY_VERSION']
         | 
| 83 100 | 
             
                    ],
         | 
| 84 101 | 
             
                    entry
         | 
| 85 102 | 
             
                  )
         | 
| @@ -103,14 +120,15 @@ class TravisTest | |
| 103 120 | 
             
                results = { }
         | 
| 104 121 |  | 
| 105 122 | 
             
                travis_test.matrix.each do |entry|
         | 
| 106 | 
            -
                  puts  | 
| 123 | 
            +
                  puts 'RBENV_VERSION=%{rvm} BUNDLE_GEMFILE=%{gemfile}' % entry
         | 
| 107 124 |  | 
| 108 125 | 
             
                  gemfile_lock_remove!(entry[:gemfile])
         | 
| 109 126 |  | 
| 110 | 
            -
                   | 
| 127 | 
            +
                  shell!(
         | 
| 111 128 | 
             
                    [
         | 
| 112 | 
            -
                       | 
| 113 | 
            -
                       | 
| 129 | 
            +
                      'gem install bundler --no-doc',
         | 
| 130 | 
            +
                      'bundle install --quiet',
         | 
| 131 | 
            +
                      'bundle exec rake test'
         | 
| 114 132 | 
             
                    ],
         | 
| 115 133 | 
             
                    entry
         | 
| 116 134 | 
             
                  ) do |code|
         | 
| @@ -125,13 +143,13 @@ class TravisTest | |
| 125 143 | 
             
                  puts '%-20s %-24s %-6s' % [
         | 
| 126 144 | 
             
                    entry[:rvm],
         | 
| 127 145 | 
             
                    File.basename(entry[:gemfile]).sub(/\AGemfile\./,''),
         | 
| 128 | 
            -
                    code
         | 
| 146 | 
            +
                    code ? 'Pass' : 'Fail'
         | 
| 129 147 | 
             
                  ]
         | 
| 130 148 | 
             
                end
         | 
| 131 149 | 
             
              end
         | 
| 132 150 |  | 
| 133 151 | 
             
              def travis_config_path
         | 
| 134 | 
            -
                @travis_config_path ||= File.expand_path('../.travis.yml',  | 
| 152 | 
            +
                @travis_config_path ||= File.expand_path('../.travis.yml', __dir__)
         | 
| 135 153 | 
             
              end
         | 
| 136 154 |  | 
| 137 155 | 
             
              def travis_config
         | 
| @@ -143,24 +161,24 @@ class TravisTest | |
| 143 161 | 
             
              end
         | 
| 144 162 |  | 
| 145 163 | 
             
              def ruby_versions
         | 
| 146 | 
            -
                travis_config['rvm']
         | 
| 164 | 
            +
                travis_config['rvm'].sort
         | 
| 147 165 | 
             
              end
         | 
| 148 166 |  | 
| 149 167 | 
             
              def matrix_exclusions
         | 
| 150 | 
            -
                travis_config | 
| 168 | 
            +
                travis_config.dig('matrix', 'exclude')&.collect do |entry|
         | 
| 151 169 | 
             
                  {
         | 
| 152 | 
            -
                    : | 
| 153 | 
            -
                    : | 
| 170 | 
            +
                    rvm: entry['rvm'],
         | 
| 171 | 
            +
                    gemfile: entry['gemfile']
         | 
| 154 172 | 
             
                  }
         | 
| 155 | 
            -
                end
         | 
| 173 | 
            +
                end or [ ]
         | 
| 156 174 | 
             
              end
         | 
| 157 175 |  | 
| 158 176 | 
             
              def matrix
         | 
| 159 177 | 
             
                ruby_versions.flat_map do |version|
         | 
| 160 178 | 
             
                  gemfiles.collect do |gemfile|
         | 
| 161 179 | 
             
                    {
         | 
| 162 | 
            -
                      : | 
| 163 | 
            -
                      : | 
| 180 | 
            +
                      rvm: version,
         | 
| 181 | 
            +
                      gemfile: gemfile
         | 
| 164 182 | 
             
                    }
         | 
| 165 183 | 
             
                  end
         | 
| 166 184 | 
             
                end - matrix_exclusions
         | 
| @@ -1,28 +1,33 @@ | |
| 1 | 
            -
            require_relative ' | 
| 1 | 
            +
            require_relative '../helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            class ConfigurationTest < MiniTest::Test
         | 
| 4 4 | 
             
              def test_initialization_defaults
         | 
| 5 5 | 
             
                config = PostageApp::Configuration.new
         | 
| 6 | 
            -
             | 
| 6 | 
            +
             | 
| 7 7 | 
             
                assert_equal true, config.secure
         | 
| 8 | 
            -
             | 
| 8 | 
            +
             | 
| 9 | 
            +
                if (ENV['POSTAGEAPP_API_KEY'])
         | 
| 10 | 
            +
                  assert_equal ENV['POSTAGEAPP_API_KEY'], config.api_key
         | 
| 11 | 
            +
                end
         | 
| 12 | 
            +
             | 
| 9 13 | 
             
                assert_equal 'https', config.scheme
         | 
| 10 14 | 
             
                assert_equal ENV['POSTAGEAPP_API_HOST'] || 'api.postageapp.com', config.host
         | 
| 11 15 | 
             
                assert_equal 443, config.port
         | 
| 12 16 |  | 
| 13 | 
            -
                 | 
| 17 | 
            +
                assert_nil config.proxy_host
         | 
| 14 18 | 
             
                assert_equal 1080, config.proxy_port
         | 
| 15 | 
            -
                 | 
| 16 | 
            -
                 | 
| 19 | 
            +
                assert_nil config.proxy_user
         | 
| 20 | 
            +
                assert_nil config.proxy_pass
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                assert_equal 5, config.http_open_timeout
         | 
| 23 | 
            +
                assert_equal 10, config.http_read_timeout
         | 
| 17 24 |  | 
| 18 | 
            -
                 | 
| 19 | 
            -
                assert_equal 10,  config.http_read_timeout
         | 
| 20 | 
            -
                assert_equal nil, config.recipient_override
         | 
| 25 | 
            +
                assert_nil config.recipient_override
         | 
| 21 26 | 
             
                assert_equal %w( send_message ), config.requests_to_resend
         | 
| 22 | 
            -
                 | 
| 27 | 
            +
                refute_nil config.project_root
         | 
| 23 28 | 
             
                assert_equal 'production', config.environment
         | 
| 24 | 
            -
                 | 
| 25 | 
            -
                 | 
| 29 | 
            +
                assert_nil config.logger
         | 
| 30 | 
            +
                assert_match 'Ruby', config.framework
         | 
| 26 31 | 
             
              end
         | 
| 27 32 |  | 
| 28 33 | 
             
              def test_initialization_overrides
         | 
| @@ -52,6 +57,7 @@ class ConfigurationTest < MiniTest::Test | |
| 52 57 | 
             
                config = PostageApp::Configuration.new
         | 
| 53 58 |  | 
| 54 59 | 
             
                config.secure = false
         | 
| 60 | 
            +
             | 
| 55 61 | 
             
                assert_equal false, config.secure
         | 
| 56 62 | 
             
                assert_equal 'http', config.scheme
         | 
| 57 63 | 
             
                assert_equal 80, config.port
         | 
| @@ -1,10 +1,10 @@ | |
| 1 | 
            -
            require_relative ' | 
| 1 | 
            +
            require_relative '../helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            class FailedRequestTest < MiniTest::Test
         | 
| 4 4 | 
             
              def setup
         | 
| 5 5 | 
             
                super
         | 
| 6 6 |  | 
| 7 | 
            -
                PostageApp.configuration.project_root =  | 
| 7 | 
            +
                PostageApp.configuration.project_root = __dir__
         | 
| 8 8 | 
             
              end
         | 
| 9 9 |  | 
| 10 10 | 
             
              def test_store_and_initialize
         | 
| @@ -87,12 +87,12 @@ class FailedRequestTest < MiniTest::Test | |
| 87 87 | 
             
                request = PostageApp::Request.new(:get_project_info)
         | 
| 88 88 |  | 
| 89 89 | 
             
                message_receipt_response = stub(
         | 
| 90 | 
            -
                   | 
| 91 | 
            -
                   | 
| 92 | 
            -
                   | 
| 90 | 
            +
                  fail?: false,
         | 
| 91 | 
            +
                  ok?: false,
         | 
| 92 | 
            +
                  not_found?: true
         | 
| 93 93 | 
             
                )
         | 
| 94 94 |  | 
| 95 | 
            -
                message_receipt_request = stub(: | 
| 95 | 
            +
                message_receipt_request = stub(send: message_receipt_response)
         | 
| 96 96 |  | 
| 97 97 | 
             
                PostageApp::Request.stubs(:new).with do |a,b|
         | 
| 98 98 | 
             
                  a == :get_message_receipt
         | 
| @@ -1,51 +1,16 @@ | |
| 1 | 
            -
            require_relative ' | 
| 1 | 
            +
            require_relative '../helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            class LiveTest < MiniTest::Test
         | 
| 4 4 | 
             
              # Note: Need access to a live PostageApp.com account
         | 
| 5 5 | 
             
              # See helper.rb to set host / api key
         | 
| 6 6 |  | 
| 7 | 
            -
              if (ENV['POSTAGEAPP_API_KEY'])
         | 
| 7 | 
            +
              if (ENV['POSTAGEAPP_API_KEY'] and ENV['POSTAGEAPP_API_KEY'] != '__TEST_API_KEY__')
         | 
| 8 8 | 
             
                def test_configuration
         | 
| 9 9 | 
             
                  config = PostageApp.config
         | 
| 10 10 |  | 
| 11 11 | 
             
                  assert config
         | 
| 12 12 | 
             
                  assert_equal ENV['POSTAGEAPP_API_KEY'], config.api_key
         | 
| 13 13 | 
             
                end
         | 
| 14 | 
            -
             | 
| 15 | 
            -
                def test_request_get_method_list
         | 
| 16 | 
            -
                  request = PostageApp::Request.new(:get_method_list)
         | 
| 17 | 
            -
                  response = request.send
         | 
| 18 | 
            -
                  
         | 
| 19 | 
            -
                  assert_equal 'PostageApp::Response', response.class.name
         | 
| 20 | 
            -
                  assert_equal 'ok', response.status
         | 
| 21 | 
            -
                  assert_match(/^\w{40}$/, response.uid)
         | 
| 22 | 
            -
                  assert_equal nil, response.message
         | 
| 23 | 
            -
                  assert_equal(
         | 
| 24 | 
            -
                    {
         | 
| 25 | 
            -
                      'methods' => %w[
         | 
| 26 | 
            -
                        get_account_info
         | 
| 27 | 
            -
                        get_message_receipt
         | 
| 28 | 
            -
                        get_message_transmissions
         | 
| 29 | 
            -
                        get_messages
         | 
| 30 | 
            -
                        get_method_list
         | 
| 31 | 
            -
                        get_metrics
         | 
| 32 | 
            -
                        get_project_info
         | 
| 33 | 
            -
                        get_recipients_list
         | 
| 34 | 
            -
                        get_suppression_list
         | 
| 35 | 
            -
                        message_delivery_status
         | 
| 36 | 
            -
                        message_status
         | 
| 37 | 
            -
                        messages_history
         | 
| 38 | 
            -
                        project_create
         | 
| 39 | 
            -
                        project_destroy
         | 
| 40 | 
            -
                        project_info
         | 
| 41 | 
            -
                        send_message
         | 
| 42 | 
            -
                        test_mail_server
         | 
| 43 | 
            -
                        test_recipient
         | 
| 44 | 
            -
                      ].join(', ')
         | 
| 45 | 
            -
                    },
         | 
| 46 | 
            -
                    response.data
         | 
| 47 | 
            -
                  )
         | 
| 48 | 
            -
                end
         | 
| 49 14 |  | 
| 50 15 | 
             
                def test_request_send_message
         | 
| 51 16 | 
             
                  request = PostageApp::Request.new(
         | 
| @@ -67,7 +32,7 @@ class LiveTest < MiniTest::Test | |
| 67 32 | 
             
                  assert_equal 'ok', response.status
         | 
| 68 33 |  | 
| 69 34 | 
             
                  assert_match(/^\w{40}$/, response.uid)
         | 
| 70 | 
            -
                   | 
| 35 | 
            +
                  assert_nil response.message
         | 
| 71 36 | 
             
                  assert_match(/\d+/, response.data['message']['id'].to_s)
         | 
| 72 37 |  | 
| 73 38 | 
             
                  receipt = PostageApp::Request.new(
         | 
| @@ -95,7 +60,7 @@ class LiveTest < MiniTest::Test | |
| 95 60 |  | 
| 96 61 | 
             
                  assert_match(/\A\w{40}$/, response.uid)
         | 
| 97 62 | 
             
                  assert_match(/\ARequest could not be processed/, response.message)
         | 
| 98 | 
            -
                   | 
| 63 | 
            +
                  assert_nil response.data
         | 
| 99 64 | 
             
                end
         | 
| 100 65 |  | 
| 101 66 | 
             
                # Testable under ruby 1.9.2 Probably OK in production too... Probably
         | 
| @@ -1,8 +1,8 @@ | |
| 1 | 
            -
            require_relative ' | 
| 1 | 
            +
            require_relative '../helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            class Mailer4Test < MiniTest::Test
         | 
| 4 4 | 
             
              require_action_mailer(4) do
         | 
| 5 | 
            -
                require File.expand_path('mailer/action_mailer_3/notifier',  | 
| 5 | 
            +
                require File.expand_path('mailer/action_mailer_3/notifier', __dir__)
         | 
| 6 6 |  | 
| 7 7 | 
             
                puts "\e[0m\e[32mRunning #{File.basename(__FILE__)} for action_mailer #{ActionMailer::VERSION::STRING}\e[0m"
         | 
| 8 8 |  | 
| @@ -1,15 +1,15 @@ | |
| 1 | 
            -
            require_relative ' | 
| 1 | 
            +
            require_relative '../helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            class MailerHelperMethodsTest < MiniTest::Test
         | 
| 4 4 | 
             
              def test_mailer_helper_methods
         | 
| 5 5 | 
             
                request = PostageApp::Request.new(
         | 
| 6 6 | 
             
                  :send_message,
         | 
| 7 | 
            -
                  : | 
| 7 | 
            +
                  headers: {
         | 
| 8 8 | 
             
                    'from' => 'sender@test.test',
         | 
| 9 9 | 
             
                    'subject' => 'Test Message'
         | 
| 10 10 | 
             
                  },
         | 
| 11 | 
            -
                  : | 
| 12 | 
            -
                  : | 
| 11 | 
            +
                  recipients: 'test@test.test',
         | 
| 12 | 
            +
                  content: {
         | 
| 13 13 | 
             
                    'text/plain' => 'text content',
         | 
| 14 14 | 
             
                    'text/html' => 'html content'
         | 
| 15 15 | 
             
                  }
         | 
| @@ -1,4 +1,4 @@ | |
| 1 | 
            -
            require_relative ' | 
| 1 | 
            +
            require_relative '../helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            class PostageAppTest < MiniTest::Test
         | 
| 4 4 | 
             
              def test_method_configure
         | 
| @@ -13,6 +13,12 @@ class PostageAppTest < MiniTest::Test | |
| 13 13 | 
             
              ensure
         | 
| 14 14 | 
             
                PostageApp.configuration_reset!
         | 
| 15 15 | 
             
              end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
              def test_version
         | 
| 18 | 
            +
                assert PostageApp.version.match(/\A\d+\.\d+\.\d+\z/), -> {
         | 
| 19 | 
            +
                  "%s is not a valid version number" % PostageApp.version.inspect
         | 
| 20 | 
            +
                }
         | 
| 21 | 
            +
              end
         | 
| 16 22 |  | 
| 17 23 | 
             
              def test_logger
         | 
| 18 24 | 
             
                assert PostageApp.logger.is_a?(Logger)
         | 
| @@ -1,6 +1,6 @@ | |
| 1 | 
            -
            require_relative ' | 
| 1 | 
            +
            require_relative '../helper'
         | 
| 2 2 |  | 
| 3 | 
            -
             | 
| 3 | 
            +
            require_relative '../../lib/postageapp/rails/rails'
         | 
| 4 4 |  | 
| 5 5 | 
             
            class RailsInitializationTest < MiniTest::Test
         | 
| 6 6 | 
             
              def test_initialization
         | 
| @@ -1,4 +1,4 @@ | |
| 1 | 
            -
            require_relative ' | 
| 1 | 
            +
            require_relative '../helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            class RequestTest < MiniTest::Test
         | 
| 4 4 | 
             
              def test_method_uid
         | 
| @@ -10,15 +10,15 @@ class RequestTest < MiniTest::Test | |
| 10 10 | 
             
                assert_equal uid, request.uid
         | 
| 11 11 | 
             
                assert uid != request.uid(true)
         | 
| 12 12 | 
             
              end
         | 
| 13 | 
            -
             | 
| 13 | 
            +
             | 
| 14 14 | 
             
              def test_method_url
         | 
| 15 15 | 
             
                request = PostageApp::Request.new('test_method')
         | 
| 16 16 |  | 
| 17 17 | 
             
                assert_equal 'api.postageapp.com', request.url.host
         | 
| 18 18 | 
             
                assert_equal 443, request.url.port
         | 
| 19 | 
            -
                assert_equal '/v.1. | 
| 19 | 
            +
                assert_equal '/v.1.1/test_method.json', request.url.path
         | 
| 20 20 | 
             
              end
         | 
| 21 | 
            -
             | 
| 21 | 
            +
             | 
| 22 22 | 
             
              def test_method_arguments_to_send
         | 
| 23 23 | 
             
                request = PostageApp::Request.new('send_message',
         | 
| 24 24 | 
             
                  'headers' => {
         | 
| @@ -34,9 +34,10 @@ class RequestTest < MiniTest::Test | |
| 34 34 |  | 
| 35 35 | 
             
                args = request.arguments_to_send
         | 
| 36 36 |  | 
| 37 | 
            +
                assert args['api_key']
         | 
| 37 38 | 
             
                assert !args['api_key'].empty?
         | 
| 38 39 | 
             
                assert_match(/^\w{40}$/, args['uid'])
         | 
| 39 | 
            -
             | 
| 40 | 
            +
             | 
| 40 41 | 
             
                payload = args['arguments']
         | 
| 41 42 |  | 
| 42 43 | 
             
                assert_equal 'sender@test.test', payload['headers']['from']
         | 
| @@ -44,7 +45,7 @@ class RequestTest < MiniTest::Test | |
| 44 45 | 
             
                assert_equal 'test@test.test', payload['recipients']
         | 
| 45 46 | 
             
                assert_equal 'text content', payload['content']['text/plain']
         | 
| 46 47 | 
             
                assert_equal 'html content', payload['content']['text/html']
         | 
| 47 | 
            -
             | 
| 48 | 
            +
             | 
| 48 49 | 
             
                request.arguments = { 'data' => 'content' }
         | 
| 49 50 |  | 
| 50 51 | 
             
                args = request.arguments_to_send
         | 
| @@ -53,37 +54,37 @@ class RequestTest < MiniTest::Test | |
| 53 54 | 
             
                assert_match(/^\w{40}$/, args['uid'])
         | 
| 54 55 | 
             
                assert_equal 'content', args['arguments']['data']
         | 
| 55 56 | 
             
              end
         | 
| 56 | 
            -
             | 
| 57 | 
            +
             | 
| 57 58 | 
             
              def test_uid_is_enforceable
         | 
| 58 59 | 
             
                request = PostageApp::Request.new('test_method')
         | 
| 59 60 |  | 
| 60 61 | 
             
                assert_match(/^\w{40}$/, request.arguments_to_send['uid'])
         | 
| 61 | 
            -
             | 
| 62 | 
            +
             | 
| 62 63 | 
             
                request.uid = 'my_uid'
         | 
| 63 64 |  | 
| 64 65 | 
             
                assert_equal 'my_uid', request.arguments_to_send['uid']
         | 
| 65 | 
            -
             | 
| 66 | 
            +
             | 
| 66 67 | 
             
                request = PostageApp::Request.new('test_method', 'uid' => 'new_uid', 'data' => 'value')
         | 
| 67 68 |  | 
| 68 69 | 
             
                assert_equal 'new_uid', request.uid
         | 
| 69 70 | 
             
                assert_equal({ 'data' => 'value' }, request.arguments)
         | 
| 70 71 | 
             
              end
         | 
| 71 | 
            -
             | 
| 72 | 
            +
             | 
| 72 73 | 
             
              def test_api_key
         | 
| 73 74 | 
             
                request = PostageApp::Request.new('test_method')
         | 
| 74 75 |  | 
| 75 76 | 
             
                assert_equal PostageApp.configuration.api_key, request.api_key
         | 
| 76 | 
            -
             | 
| 77 | 
            +
             | 
| 77 78 | 
             
                request = PostageApp::Request.new('test_method', {
         | 
| 78 79 | 
             
                  'api_key' => 'custom_api_key'
         | 
| 79 80 | 
             
                })
         | 
| 80 81 |  | 
| 81 82 | 
             
                assert_equal 'custom_api_key', request.api_key
         | 
| 82 83 | 
             
              end
         | 
| 83 | 
            -
             | 
| 84 | 
            +
             | 
| 84 85 | 
             
              def test_send
         | 
| 85 86 | 
             
                mock_successful_send
         | 
| 86 | 
            -
             | 
| 87 | 
            +
             | 
| 87 88 | 
             
                request = PostageApp::Request.new('send_message',
         | 
| 88 89 | 
             
                  'headers' => {
         | 
| 89 90 | 
             
                    'from' => 'sender@test.test',
         | 
| @@ -102,10 +103,10 @@ class RequestTest < MiniTest::Test | |
| 102 103 | 
             
                assert_equal 'sha1hashuid23456789012345678901234567890', response.uid
         | 
| 103 104 | 
             
                assert_equal({ 'message' => { 'id' => 999 } }, response.data)
         | 
| 104 105 | 
             
              end
         | 
| 105 | 
            -
             | 
| 106 | 
            +
             | 
| 106 107 | 
             
              def test_send_failure
         | 
| 107 108 | 
             
                mock_failed_send
         | 
| 108 | 
            -
             | 
| 109 | 
            +
             | 
| 109 110 | 
             
                request = PostageApp::Request.new(
         | 
| 110 111 | 
             
                  'send_message',
         | 
| 111 112 | 
             
                  'headers' => {
         | 
| @@ -122,7 +123,7 @@ class RequestTest < MiniTest::Test | |
| 122 123 | 
             
                response = request.send
         | 
| 123 124 |  | 
| 124 125 | 
             
                assert_equal 'fail', response.status
         | 
| 125 | 
            -
                 | 
| 126 | 
            -
                 | 
| 126 | 
            +
                assert_nil response.uid
         | 
| 127 | 
            +
                assert_nil response.data
         | 
| 127 128 | 
             
              end
         | 
| 128 129 | 
             
            end
         |