tanga_active_utils 2.2.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,50 @@
1
+ require 'test_helper'
2
+
3
+ class MyPost < ActiveMerchant::PostData
4
+ self.required_fields = [ :ccnumber, :ccexp, :firstname, :lastname, :username, :password, :order_id, :key, :time ]
5
+ end
6
+
7
+ class PostDataTest < Minitest::Test
8
+ def teardown
9
+ ActiveMerchant::PostData.required_fields = []
10
+ end
11
+
12
+ def test_element_assignment
13
+ name = 'Cody Fauser'
14
+ post = ActiveMerchant::PostData.new
15
+
16
+ post[:name] = name
17
+ assert_equal name, post[:name]
18
+ end
19
+
20
+ def test_ignore_blank_fields
21
+ post = ActiveMerchant::PostData.new
22
+ assert_equal 0, post.keys.size
23
+
24
+ post[:name] = ''
25
+ assert_equal 0, post.keys.size
26
+
27
+ post[:name] = nil
28
+ assert_equal 0, post.keys.size
29
+ end
30
+
31
+ def test_dont_ignore_required_blank_fields
32
+ ActiveMerchant::PostData.required_fields = [ :name ]
33
+ post = ActiveMerchant::PostData.new
34
+
35
+ assert_equal 0, post.keys.size
36
+
37
+ post[:name] = ''
38
+ assert_equal 1, post.keys.size
39
+ assert_equal '', post[:name]
40
+
41
+ post[:name] = nil
42
+ assert_equal 1, post.keys.size
43
+ assert_nil post[:name]
44
+ end
45
+
46
+ def test_subclass
47
+ post = MyPost.new
48
+ assert_equal [ :ccnumber, :ccexp, :firstname, :lastname, :username, :password, :order_id, :key, :time ], post.required_fields
49
+ end
50
+ end
@@ -0,0 +1,58 @@
1
+ require 'test_helper'
2
+ require 'active_support/core_ext/class'
3
+
4
+ class PostsDataTest < Minitest::Test
5
+
6
+ class SSLPoster
7
+ include PostsData
8
+
9
+ attr_accessor :logger
10
+ end
11
+
12
+ def setup
13
+ @poster = SSLPoster.new
14
+ end
15
+
16
+ def test_ssl_request_retried_three_times_by_default
17
+ requester = stubs(:requester)
18
+ requester.expects(:post).raises(Errno::ECONNREFUSED).times(3)
19
+ Connection.any_instance.stubs(:http => requester)
20
+
21
+ assert_raises ActiveMerchant::ConnectionError do
22
+ @poster.raw_ssl_request(:post, "https://shopify.com", "", {})
23
+ end
24
+ end
25
+
26
+ def test_ssl_request_never_retried_if_max_retries_set
27
+ SSLPoster.max_retries = 1
28
+ requester = stubs(:requester)
29
+ requester.expects(:post).raises(Errno::ECONNREFUSED).times(1)
30
+ Connection.any_instance.stubs(:http => requester)
31
+
32
+ assert_raises ActiveMerchant::ConnectionError do
33
+ @poster.raw_ssl_request(:post, "https://shopify.com", "", {})
34
+ end
35
+ ensure
36
+ SSLPoster.max_retries = ActiveMerchant::Connection::MAX_RETRIES
37
+ end
38
+
39
+ def test_logger_warns_if_ssl_strict_disabled
40
+ @poster.logger = stub()
41
+ @poster.logger.expects(:warn).with("PostsDataTest::SSLPoster using ssl_strict=false, which is insecure")
42
+
43
+ Connection.any_instance.stubs(:request)
44
+
45
+ SSLPoster.ssl_strict = false
46
+ @poster.raw_ssl_request(:post, "https://shopify.com", "", {})
47
+ end
48
+
49
+ def test_logger_no_warning_if_ssl_strict_enabled
50
+ @poster.logger = stub()
51
+ @poster.logger.stubs(:warn).never
52
+ Connection.any_instance.stubs(:request)
53
+
54
+ SSLPoster.ssl_strict = true
55
+ @poster.raw_ssl_request(:post, "https://shopify.com", "", {})
56
+ end
57
+
58
+ end
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class UtilsTest < Minitest::Test
4
+ def test_unique_id_should_be_32_chars_and_alphanumeric
5
+ assert_match /^\w{32}$/, ActiveMerchant::Utils.generate_unique_id
6
+ end
7
+ end
@@ -0,0 +1,59 @@
1
+ require 'test_helper'
2
+
3
+ class Dood
4
+ include ActiveMerchant::Validateable
5
+
6
+ attr_accessor :name, :email, :country
7
+
8
+ def validate
9
+ errors.add "name", "cannot be empty" if name.blank?
10
+ errors.add "email", "cannot be empty" if email.blank?
11
+ errors.add_to_base "The country cannot be blank" if country.blank?
12
+ end
13
+
14
+ end
15
+
16
+ class ValidateableTest < Minitest::Test
17
+
18
+ def setup
19
+ @dood = Dood.new
20
+ end
21
+
22
+ def test_validation
23
+ assert ! @dood.valid?
24
+ assert ! @dood.errors.empty?
25
+ end
26
+
27
+ def test_assigns
28
+ @dood = Dood.new(:name => "tobi", :email => "tobi@neech.de", :country => 'DE')
29
+
30
+ assert_equal "tobi", @dood.name
31
+ assert_equal "tobi@neech.de", @dood.email
32
+ assert @dood.valid?
33
+ end
34
+
35
+ def test_multiple_calls
36
+ @dood.name = "tobi"
37
+ assert !@dood.valid?
38
+
39
+ @dood.email = "tobi@neech.de"
40
+ assert !@dood.valid?
41
+
42
+ @dood.country = 'DE'
43
+ assert @dood.valid?
44
+ end
45
+
46
+ def test_messages
47
+ @dood.valid?
48
+ assert_equal "cannot be empty", @dood.errors.on('name')
49
+ assert_equal "cannot be empty", @dood.errors.on('email')
50
+ assert_equal nil, @dood.errors.on('doesnt_exist')
51
+
52
+ end
53
+
54
+ def test_full_messages
55
+ @dood.valid?
56
+ assert_equal ["Email cannot be empty", "Name cannot be empty", "The country cannot be blank"], @dood.errors.full_messages.sort
57
+ end
58
+
59
+ end
metadata ADDED
@@ -0,0 +1,132 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tanga_active_utils
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.2.3
5
+ platform: ruby
6
+ authors:
7
+ - Shopify
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-04-23 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.3.11
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.3.11
27
+ - !ruby/object:Gem::Dependency
28
+ name: i18n
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: mocha
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
+ description:
70
+ email:
71
+ - developers@jadedpixel.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - ".gitignore"
77
+ - ".travis.yml"
78
+ - Gemfile
79
+ - MIT-LICENSE
80
+ - README.md
81
+ - Rakefile
82
+ - lib/active_utils.rb
83
+ - lib/active_utils/common/connection.rb
84
+ - lib/active_utils/common/country.rb
85
+ - lib/active_utils/common/currency_code.rb
86
+ - lib/active_utils/common/error.rb
87
+ - lib/active_utils/common/network_connection_retries.rb
88
+ - lib/active_utils/common/post_data.rb
89
+ - lib/active_utils/common/posts_data.rb
90
+ - lib/active_utils/common/requires_parameters.rb
91
+ - lib/active_utils/common/utils.rb
92
+ - lib/active_utils/common/validateable.rb
93
+ - lib/active_utils/version.rb
94
+ - lib/certs/cacert.pem
95
+ - shipit.rubygems.yml
96
+ - tanga_active_utils.gemspec
97
+ - test/test_helper.rb
98
+ - test/unit/connection_test.rb
99
+ - test/unit/country_code_test.rb
100
+ - test/unit/country_test.rb
101
+ - test/unit/currency_code_test.rb
102
+ - test/unit/network_connection_retries_test.rb
103
+ - test/unit/post_data_test.rb
104
+ - test/unit/posts_data_test.rb
105
+ - test/unit/utils_test.rb
106
+ - test/unit/validateable_test.rb
107
+ homepage: http://github.com/shopify/active_utils
108
+ licenses:
109
+ - MIT
110
+ metadata: {}
111
+ post_install_message:
112
+ rdoc_options: []
113
+ require_paths:
114
+ - lib
115
+ required_ruby_version: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
120
+ required_rubygems_version: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ requirements: []
126
+ rubyforge_project: active_utils
127
+ rubygems_version: 2.4.5
128
+ signing_key:
129
+ specification_version: 4
130
+ summary: Common utils used by active_merchant, active_fulfillment, and active_shipping
131
+ test_files: []
132
+ has_rdoc: