cybrid_api_id_ruby 0.124.79 → 0.124.80
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 +4 -4
- data/Gemfile.lock +2 -2
- data/README.md +5 -5
- data/cybrid_api_id_ruby.gemspec +1 -1
- data/lib/cybrid_api_id_ruby/api/bank_applications_idp_api.rb +1 -1
- data/lib/cybrid_api_id_ruby/api/customer_tokens_idp_api.rb +1 -1
- data/lib/cybrid_api_id_ruby/api/organization_applications_idp_api.rb +1 -1
- data/lib/cybrid_api_id_ruby/api/users_idp_api.rb +1 -1
- data/lib/cybrid_api_id_ruby/api_client.rb +1 -1
- data/lib/cybrid_api_id_ruby/api_error.rb +1 -1
- data/lib/cybrid_api_id_ruby/configuration.rb +1 -1
- data/lib/cybrid_api_id_ruby/models/application_idp_model.rb +1 -1
- data/lib/cybrid_api_id_ruby/models/application_list_idp_model.rb +1 -1
- data/lib/cybrid_api_id_ruby/models/application_with_secret_all_of_idp_model.rb +1 -1
- data/lib/cybrid_api_id_ruby/models/application_with_secret_idp_model.rb +1 -1
- data/lib/cybrid_api_id_ruby/models/customer_token_idp_model.rb +1 -1
- data/lib/cybrid_api_id_ruby/models/error_response_idp_model.rb +1 -1
- data/lib/cybrid_api_id_ruby/models/patch_user_idp_model.rb +1 -1
- data/lib/cybrid_api_id_ruby/models/post_bank_application_idp_model.rb +1 -1
- data/lib/cybrid_api_id_ruby/models/post_customer_token_idp_model.rb +1 -1
- data/lib/cybrid_api_id_ruby/models/post_organization_application_idp_model.rb +1 -1
- data/lib/cybrid_api_id_ruby/models/post_user_idp_model.rb +1 -1
- data/lib/cybrid_api_id_ruby/models/user_idp_model.rb +1 -1
- data/lib/cybrid_api_id_ruby/models/user_list_idp_model.rb +1 -1
- data/lib/cybrid_api_id_ruby/version.rb +2 -2
- data/lib/cybrid_api_id_ruby.rb +1 -1
- data/spec/api/bank_applications_idp_api_spec.rb +1 -1
- data/spec/api/customer_tokens_idp_api_spec.rb +1 -1
- data/spec/api/organization_applications_idp_api_spec.rb +1 -1
- data/spec/api/users_idp_api_spec.rb +1 -1
- data/spec/api_client_spec.rb +1 -1
- data/spec/configuration_spec.rb +1 -1
- data/spec/models/application_idp_model_spec.rb +1 -1
- data/spec/models/application_list_idp_model_spec.rb +1 -1
- data/spec/models/application_with_secret_all_of_idp_model_spec.rb +1 -1
- data/spec/models/application_with_secret_idp_model_spec.rb +1 -1
- data/spec/models/customer_token_idp_model_spec.rb +1 -1
- data/spec/models/error_response_idp_model_spec.rb +1 -1
- data/spec/models/patch_user_idp_model_spec.rb +1 -1
- data/spec/models/post_bank_application_idp_model_spec.rb +1 -1
- data/spec/models/post_customer_token_idp_model_spec.rb +1 -1
- data/spec/models/post_organization_application_idp_model_spec.rb +1 -1
- data/spec/models/post_user_idp_model_spec.rb +1 -1
- data/spec/models/user_idp_model_spec.rb +1 -1
- data/spec/models/user_list_idp_model_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -1
- data/vendor/bundle/ruby/3.3.0/cache/ethon-0.17.0.gem +0 -0
- data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/byebug-12.0.0/gem_make.out +5 -5
- data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/date-3.4.1/gem_make.out +5 -5
- data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/jaro_winkler-1.5.6/gem_make.out +5 -5
- data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/psych-5.2.6/gem_make.out +5 -5
- data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/racc-1.8.1/gem_make.out +5 -5
- data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/stringio-3.1.7/gem_make.out +5 -5
- data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/CHANGELOG.md +26 -1
- data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/README.md +1 -1
- data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/ethon.gemspec +6 -3
- data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/curls/codes.rb +3 -2
- data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/version.rb +1 -1
- data/vendor/bundle/ruby/3.3.0/specifications/{ethon-0.16.0.gemspec → ethon-0.17.0.gemspec} +6 -5
- metadata +61 -105
- data/vendor/bundle/ruby/3.3.0/cache/ethon-0.16.0.gem +0 -0
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/.github/workflows/ruby.yml +0 -41
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/.gitignore +0 -8
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/.rspec +0 -3
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/Gemfile +0 -43
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/Guardfile +0 -10
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/Rakefile +0 -40
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/profile/benchmarks.rb +0 -104
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/profile/memory_leaks.rb +0 -114
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/profile/perf_spec_helper.rb +0 -37
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/profile/support/memory_test_helpers.rb +0 -76
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/profile/support/os_memory_leak_tracker.rb +0 -48
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/profile/support/ruby_object_leak_tracker.rb +0 -49
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/curl_spec.rb +0 -38
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/callbacks_spec.rb +0 -81
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/debug_info_spec.rb +0 -54
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/features_spec.rb +0 -24
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/form_spec.rb +0 -104
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/header_spec.rb +0 -79
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/custom_spec.rb +0 -177
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/delete_spec.rb +0 -21
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/get_spec.rb +0 -126
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/head_spec.rb +0 -80
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/options_spec.rb +0 -51
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/patch_spec.rb +0 -51
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/post_spec.rb +0 -317
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/put_spec.rb +0 -168
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http_spec.rb +0 -64
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/informations_spec.rb +0 -126
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/mirror_spec.rb +0 -47
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/operations_spec.rb +0 -271
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/options_spec.rb +0 -193
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/queryable_spec.rb +0 -235
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/response_callbacks_spec.rb +0 -152
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/util_spec.rb +0 -28
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy_spec.rb +0 -203
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/libc_spec.rb +0 -14
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/loggable_spec.rb +0 -22
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/multi/operations_spec.rb +0 -298
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/multi/options_spec.rb +0 -182
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/multi/stack_spec.rb +0 -80
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/multi_spec.rb +0 -152
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/spec_helper.rb +0 -28
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/support/localhost_server.rb +0 -95
- data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/support/server.rb +0 -115
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/LICENSE +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/curl.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/curls/classes.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/curls/constants.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/curls/form_options.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/curls/functions.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/curls/infos.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/curls/messages.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/curls/options.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/curls/settings.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy/callbacks.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy/debug_info.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy/features.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy/form.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy/header.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy/http/actionable.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy/http/custom.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy/http/delete.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy/http/get.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy/http/head.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy/http/options.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy/http/patch.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy/http/post.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy/http/postable.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy/http/put.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy/http/putable.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy/http.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy/informations.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy/mirror.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy/operations.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy/options.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy/params.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy/queryable.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy/response_callbacks.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy/util.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/easy.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/errors/ethon_error.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/errors/global_init.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/errors/invalid_option.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/errors/invalid_value.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/errors/multi_add.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/errors/multi_fdset.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/errors/multi_remove.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/errors/multi_timeout.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/errors/select.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/errors.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/libc.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/loggable.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/multi/operations.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/multi/options.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/multi/stack.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon/multi.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{ethon-0.16.0 → ethon-0.17.0}/lib/ethon.rb +0 -0
@@ -1,235 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
# frozen_string_literal: true
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe Ethon::Easy::Queryable do
|
6
|
-
let(:hash) { {} }
|
7
|
-
let!(:easy) { Ethon::Easy.new }
|
8
|
-
let(:params) { Ethon::Easy::Params.new(easy, hash) }
|
9
|
-
|
10
|
-
describe "#to_s" do
|
11
|
-
context "when query_pairs empty" do
|
12
|
-
before { params.instance_variable_set(:@query_pairs, []) }
|
13
|
-
|
14
|
-
it "returns empty string" do
|
15
|
-
expect(params.to_s).to eq("")
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
context "when query_pairs not empty" do
|
20
|
-
context "when escape" do
|
21
|
-
before do
|
22
|
-
params.escape = true
|
23
|
-
end
|
24
|
-
|
25
|
-
{
|
26
|
-
'!' => '%21', '*' => '%2A', "'" => '%27', '(' => '%28',
|
27
|
-
')' => '%29', ';' => '%3B', ':' => '%3A', '@' => '%40',
|
28
|
-
'&' => '%26', '=' => '%3D', '+' => '%2B', '$' => '%24',
|
29
|
-
',' => '%2C', '/' => '%2F', '?' => '%3F', '#' => '%23',
|
30
|
-
'[' => '%5B', ']' => '%5D',
|
31
|
-
|
32
|
-
'<' => '%3C', '>' => '%3E', '"' => '%22', '{' => '%7B',
|
33
|
-
'}' => '%7D', '|' => '%7C', '\\' => '%5C', '`' => '%60',
|
34
|
-
'^' => '%5E', '%' => '%25', ' ' => '%20', "\0" => '%00',
|
35
|
-
|
36
|
-
'まつもと' => '%E3%81%BE%E3%81%A4%E3%82%82%E3%81%A8',
|
37
|
-
}.each do |value, percent|
|
38
|
-
it "turns #{value.inspect} into #{percent}" do
|
39
|
-
params.instance_variable_set(:@query_pairs, [[:a, value]])
|
40
|
-
expect(params.to_s).to eq("a=#{percent}")
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
{
|
45
|
-
'.' => '%2E', '-' => '%2D', '_' => '%5F', '~' => '%7E',
|
46
|
-
}.each do |value, percent|
|
47
|
-
it "leaves #{value.inspect} instead of turning into #{percent}" do
|
48
|
-
params.instance_variable_set(:@query_pairs, [[:a, value]])
|
49
|
-
expect(params.to_s).to eq("a=#{value}")
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
context "when no escape" do
|
55
|
-
before { params.instance_variable_set(:@query_pairs, [[:a, 1], [:b, 2]]) }
|
56
|
-
|
57
|
-
it "returns concatenated query string" do
|
58
|
-
expect(params.to_s).to eq("a=1&b=2")
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
context "when query_pairs contains a string" do
|
64
|
-
before { params.instance_variable_set(:@query_pairs, ["{a: 1}"]) }
|
65
|
-
|
66
|
-
it "returns correct string" do
|
67
|
-
expect(params.to_s).to eq("{a: 1}")
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
describe "#build_query_pairs" do
|
73
|
-
let(:pairs) { params.method(:build_query_pairs).call(hash) }
|
74
|
-
|
75
|
-
context "when params is empty" do
|
76
|
-
it "returns empty array" do
|
77
|
-
expect(pairs).to eq([])
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
context "when params is string" do
|
82
|
-
let(:hash) { "{a: 1}" }
|
83
|
-
|
84
|
-
it "wraps it in an array" do
|
85
|
-
expect(pairs).to eq([hash])
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
context "when params is simple hash" do
|
90
|
-
let(:hash) { {:a => 1, :b => 2} }
|
91
|
-
|
92
|
-
it "transforms" do
|
93
|
-
expect(pairs).to include([:a, 1])
|
94
|
-
expect(pairs).to include([:b, 2])
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
|
-
context "when params is a nested hash" do
|
99
|
-
let(:hash) { {:a => 1, :b => {:c => 2}} }
|
100
|
-
|
101
|
-
it "transforms" do
|
102
|
-
expect(pairs).to include([:a, 1])
|
103
|
-
expect(pairs).to include(["b[c]", 2])
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
context "when params contains an array" do
|
108
|
-
let(:hash) { {:a => 1, :b => [2, 3]} }
|
109
|
-
|
110
|
-
context "by default" do
|
111
|
-
it "transforms" do
|
112
|
-
expect(pairs).to include([:a, 1])
|
113
|
-
expect(pairs).to include(["b[0]", 2])
|
114
|
-
expect(pairs).to include(["b[1]", 3])
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
context "when params_encoding is :rack" do
|
119
|
-
before { params.params_encoding = :rack }
|
120
|
-
it "transforms without indexes" do
|
121
|
-
expect(pairs).to include([:a, 1])
|
122
|
-
expect(pairs).to include(["b[]", 2])
|
123
|
-
expect(pairs).to include(["b[]", 3])
|
124
|
-
end
|
125
|
-
end
|
126
|
-
|
127
|
-
context "when params_encoding is :none" do
|
128
|
-
before { params.params_encoding = :none }
|
129
|
-
it "does no transformation" do
|
130
|
-
expect(pairs).to include([:a, 1])
|
131
|
-
expect(pairs).to include([:b, [2, 3]])
|
132
|
-
end
|
133
|
-
end
|
134
|
-
end
|
135
|
-
|
136
|
-
context "when params contains something nested in an array" do
|
137
|
-
context "when string" do
|
138
|
-
let(:hash) { {:a => {:b => ["hello", "world"]}} }
|
139
|
-
|
140
|
-
it "transforms" do
|
141
|
-
expect(pairs).to eq([["a[b][0]", "hello"], ["a[b][1]", "world"]])
|
142
|
-
end
|
143
|
-
end
|
144
|
-
|
145
|
-
context "when hash" do
|
146
|
-
let(:hash) { {:a => {:b => [{:c =>1}, {:d => 2}]}} }
|
147
|
-
|
148
|
-
it "transforms" do
|
149
|
-
expect(pairs).to eq([["a[b][0][c]", 1], ["a[b][1][d]", 2]])
|
150
|
-
end
|
151
|
-
end
|
152
|
-
|
153
|
-
context "when file" do
|
154
|
-
let(:file) { File.open("spec/spec_helper.rb") }
|
155
|
-
let(:file_info) { params.method(:file_info).call(file) }
|
156
|
-
let(:hash) { {:a => {:b => [file]}} }
|
157
|
-
let(:mime_type) { file_info[1] }
|
158
|
-
|
159
|
-
it "transforms" do
|
160
|
-
expect(pairs).to eq([["a[b][0]", file_info]])
|
161
|
-
end
|
162
|
-
|
163
|
-
context "when MIME" do
|
164
|
-
if defined?(MIME)
|
165
|
-
context "when mime type" do
|
166
|
-
it "sets mime type to text" do
|
167
|
-
expect(mime_type).to eq("application/x-ruby")
|
168
|
-
end
|
169
|
-
end
|
170
|
-
end
|
171
|
-
|
172
|
-
context "when no mime type" do
|
173
|
-
let(:file) { Tempfile.new("fubar") }
|
174
|
-
|
175
|
-
it "sets mime type to default application/octet-stream" do
|
176
|
-
expect(mime_type).to eq("application/octet-stream")
|
177
|
-
end
|
178
|
-
end
|
179
|
-
end
|
180
|
-
|
181
|
-
context "when no MIME" do
|
182
|
-
before { hide_const("MIME") }
|
183
|
-
|
184
|
-
it "sets mime type to default application/octet-stream" do
|
185
|
-
expect(mime_type).to eq("application/octet-stream")
|
186
|
-
end
|
187
|
-
end
|
188
|
-
end
|
189
|
-
end
|
190
|
-
|
191
|
-
|
192
|
-
context "when params contains file" do
|
193
|
-
let(:file) { Tempfile.new("fubar") }
|
194
|
-
let(:file_info) { params.method(:file_info).call(file) }
|
195
|
-
let(:hash) { {:a => 1, :b => file} }
|
196
|
-
|
197
|
-
it "transforms" do
|
198
|
-
expect(pairs).to include([:a, 1])
|
199
|
-
expect(pairs).to include([:b, file_info])
|
200
|
-
end
|
201
|
-
end
|
202
|
-
|
203
|
-
context "when params key contains a null byte" do
|
204
|
-
let(:hash) { {:a => "1\0" } }
|
205
|
-
|
206
|
-
it "preserves" do
|
207
|
-
expect(pairs).to eq([[:a, "1\0"]])
|
208
|
-
end
|
209
|
-
end
|
210
|
-
|
211
|
-
context "when params value contains a null byte" do
|
212
|
-
let(:hash) { {"a\0" => 1 } }
|
213
|
-
|
214
|
-
it "preserves" do
|
215
|
-
expect(pairs).to eq([["a\0", 1]])
|
216
|
-
end
|
217
|
-
end
|
218
|
-
end
|
219
|
-
|
220
|
-
describe "#empty?" do
|
221
|
-
context "when params empty" do
|
222
|
-
it "returns true" do
|
223
|
-
expect(params.empty?).to be_truthy
|
224
|
-
end
|
225
|
-
end
|
226
|
-
|
227
|
-
context "when params not empty" do
|
228
|
-
let(:hash) { {:a => 1} }
|
229
|
-
|
230
|
-
it "returns false" do
|
231
|
-
expect(params.empty?).to be_falsey
|
232
|
-
end
|
233
|
-
end
|
234
|
-
end
|
235
|
-
end
|
@@ -1,152 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'spec_helper'
|
3
|
-
|
4
|
-
describe Ethon::Easy::ResponseCallbacks do
|
5
|
-
let(:easy) { Ethon::Easy.new }
|
6
|
-
|
7
|
-
[:on_complete, :on_headers, :on_body, :on_progress].each do |callback_type|
|
8
|
-
describe "##{callback_type}" do
|
9
|
-
it "responds" do
|
10
|
-
expect(easy).to respond_to("#{callback_type}")
|
11
|
-
end
|
12
|
-
|
13
|
-
context "when no block given" do
|
14
|
-
it "returns @#{callback_type}" do
|
15
|
-
expect(easy.send("#{callback_type}")).to eq([])
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
context "when block given" do
|
20
|
-
it "stores" do
|
21
|
-
easy.send(callback_type) { p 1 }
|
22
|
-
expect(easy.instance_variable_get("@#{callback_type}").size).to eq(1)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
context "when multiple blocks given" do
|
27
|
-
it "stores" do
|
28
|
-
easy.send(callback_type) { p 1 }
|
29
|
-
easy.send(callback_type) { p 2 }
|
30
|
-
expect(easy.instance_variable_get("@#{callback_type}").size).to eq(2)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
describe "#complete" do
|
37
|
-
before do
|
38
|
-
easy.on_complete {|r| String.new(r.url) }
|
39
|
-
end
|
40
|
-
|
41
|
-
it "executes blocks and passes self" do
|
42
|
-
expect(String).to receive(:new).with(easy.url)
|
43
|
-
easy.complete
|
44
|
-
end
|
45
|
-
|
46
|
-
context "when @on_complete nil" do
|
47
|
-
it "doesn't raise" do
|
48
|
-
easy.instance_variable_set(:@on_complete, nil)
|
49
|
-
expect{ easy.complete }.to_not raise_error
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
describe "#headers" do
|
55
|
-
before do
|
56
|
-
easy.on_headers {|r| String.new(r.url) }
|
57
|
-
end
|
58
|
-
|
59
|
-
it "executes blocks and passes self" do
|
60
|
-
expect(String).to receive(:new).with(easy.url)
|
61
|
-
easy.headers
|
62
|
-
end
|
63
|
-
|
64
|
-
context "when @on_headers nil" do
|
65
|
-
it "doesn't raise" do
|
66
|
-
easy.instance_variable_set(:@on_headers, nil)
|
67
|
-
expect{ easy.headers }.to_not raise_error
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
describe "#progress" do
|
73
|
-
context "when requesting for realz" do
|
74
|
-
it "executes callback" do
|
75
|
-
post = Ethon::Easy::Http::Post.new("http://localhost:3001", {:body => "bar=fu"})
|
76
|
-
post.setup(easy)
|
77
|
-
@called = false
|
78
|
-
@has_dltotal = false
|
79
|
-
@has_ultotal = false
|
80
|
-
easy.on_progress { @called = true }
|
81
|
-
easy.on_progress { |dltotal, _, _, _| @has_dltotal ||= true }
|
82
|
-
easy.on_progress { |_, _, ultotal, _| @has_ultotal ||= true }
|
83
|
-
easy.perform
|
84
|
-
expect(@called).to be true
|
85
|
-
expect(@has_dltotal).to be true
|
86
|
-
expect(@has_ultotal).to be true
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
context "when pretending" do
|
91
|
-
before do
|
92
|
-
@dltotal = nil
|
93
|
-
@dlnow = nil
|
94
|
-
@ultotal = nil
|
95
|
-
@ulnow = nil
|
96
|
-
easy.on_progress { |dltotal, dlnow, ultotal, ulnow| @dltotal = dltotal ; @dlnow = dlnow; @ultotal = ultotal; @ulnow = ulnow }
|
97
|
-
end
|
98
|
-
|
99
|
-
it "executes blocks and passes dltotal" do
|
100
|
-
easy.progress(1, 2, 3, 4)
|
101
|
-
expect(@dltotal).to eq(1)
|
102
|
-
end
|
103
|
-
|
104
|
-
it "executes blocks and passes dlnow" do
|
105
|
-
easy.progress(1, 2, 3, 4)
|
106
|
-
expect(@dlnow).to eq(2)
|
107
|
-
end
|
108
|
-
|
109
|
-
it "executes blocks and passes ultotal" do
|
110
|
-
easy.progress(1, 2, 3, 4)
|
111
|
-
expect(@ultotal).to eq(3)
|
112
|
-
end
|
113
|
-
|
114
|
-
it "executes blocks and passes ulnow" do
|
115
|
-
easy.progress(1, 2, 3, 4)
|
116
|
-
expect(@ulnow).to eq(4)
|
117
|
-
end
|
118
|
-
|
119
|
-
context "when @on_progress nil" do
|
120
|
-
it "doesn't raise" do
|
121
|
-
easy.instance_variable_set(:@on_progress, nil)
|
122
|
-
expect{ easy.progress(1, 2, 3, 4) }.to_not raise_error
|
123
|
-
end
|
124
|
-
end
|
125
|
-
end
|
126
|
-
end
|
127
|
-
|
128
|
-
describe "#body" do
|
129
|
-
before do
|
130
|
-
@chunk = nil
|
131
|
-
@r = nil
|
132
|
-
easy.on_body { |chunk, r| @chunk = chunk ; @r = r }
|
133
|
-
end
|
134
|
-
|
135
|
-
it "executes blocks and passes self" do
|
136
|
-
easy.body("the chunk")
|
137
|
-
expect(@r).to be(easy)
|
138
|
-
end
|
139
|
-
|
140
|
-
it "executes blocks and passes chunk" do
|
141
|
-
easy.body("the chunk")
|
142
|
-
expect(@chunk).to eq("the chunk")
|
143
|
-
end
|
144
|
-
|
145
|
-
context "when @on_body nil" do
|
146
|
-
it "doesn't raise" do
|
147
|
-
easy.instance_variable_set(:@on_body, nil)
|
148
|
-
expect{ easy.body("the chunk") }.to_not raise_error
|
149
|
-
end
|
150
|
-
end
|
151
|
-
end
|
152
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'spec_helper'
|
3
|
-
|
4
|
-
describe Ethon::Easy::Util do
|
5
|
-
class Dummy
|
6
|
-
include Ethon::Easy::Util
|
7
|
-
end
|
8
|
-
|
9
|
-
let(:klass) { Dummy.new }
|
10
|
-
|
11
|
-
describe "escape_zero_byte" do
|
12
|
-
context "when value has no zero byte" do
|
13
|
-
let(:value) { "hello world" }
|
14
|
-
|
15
|
-
it "returns same value" do
|
16
|
-
expect(klass.escape_zero_byte(value)).to be(value)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
context "when value has zero byte" do
|
21
|
-
let(:value) { "hello \0world" }
|
22
|
-
|
23
|
-
it "returns escaped" do
|
24
|
-
expect(klass.escape_zero_byte(value)).to eq("hello \\0world")
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
@@ -1,203 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'spec_helper'
|
3
|
-
|
4
|
-
describe Ethon::Easy do
|
5
|
-
let(:easy) { Ethon::Easy.new }
|
6
|
-
|
7
|
-
describe ".new" do
|
8
|
-
it "inits curl" do
|
9
|
-
expect(Ethon::Curl).to receive(:init)
|
10
|
-
easy
|
11
|
-
end
|
12
|
-
|
13
|
-
context "when options are empty" do
|
14
|
-
it "sets only callbacks" do
|
15
|
-
expect_any_instance_of(Ethon::Easy).to receive(:set_callbacks)
|
16
|
-
expect(Ethon::Easy).to receive(:set_option).never
|
17
|
-
easy
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
context "when options not empty" do
|
22
|
-
context "when followlocation is set" do
|
23
|
-
let(:options) { { :followlocation => true } }
|
24
|
-
let(:easy) { Ethon::Easy.new(options) }
|
25
|
-
|
26
|
-
it "sets followlocation" do
|
27
|
-
expect_any_instance_of(Ethon::Easy).to receive(:set_callbacks)
|
28
|
-
expect(Ethon::Curl).to receive(:set_option).with(:followlocation, true, anything)
|
29
|
-
easy
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
describe "#set_attributes" do
|
36
|
-
context "when options are empty" do
|
37
|
-
it "sets only callbacks" do
|
38
|
-
expect_any_instance_of(Ethon::Easy).to receive(:set_callbacks)
|
39
|
-
expect(Ethon::Easy).to receive(:set_option).never
|
40
|
-
easy
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
context "when options aren't empty" do
|
45
|
-
context "when valid key" do
|
46
|
-
it "sets" do
|
47
|
-
expect(easy).to receive(:verbose=).with(true)
|
48
|
-
easy.set_attributes({:verbose => true})
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
context "when invalid key" do
|
53
|
-
it "raises invalid option error" do
|
54
|
-
expect{ easy.set_attributes({:fubar => 1}) }.to raise_error(Ethon::Errors::InvalidOption)
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
describe "#reset" do
|
61
|
-
before { easy.url = "www.example.com" }
|
62
|
-
|
63
|
-
it "resets url" do
|
64
|
-
easy.reset
|
65
|
-
expect(easy.url).to be_nil
|
66
|
-
end
|
67
|
-
|
68
|
-
it "resets escape?" do
|
69
|
-
easy.escape = false
|
70
|
-
easy.reset
|
71
|
-
expect(easy.escape?).to be_truthy
|
72
|
-
end
|
73
|
-
|
74
|
-
it "resets hash" do
|
75
|
-
easy.reset
|
76
|
-
expect(easy.instance_variable_get(:@hash)).to be_nil
|
77
|
-
end
|
78
|
-
|
79
|
-
it "resets easy handle" do
|
80
|
-
expect(Ethon::Curl).to receive(:easy_reset)
|
81
|
-
easy.reset
|
82
|
-
end
|
83
|
-
|
84
|
-
it "resets on_complete" do
|
85
|
-
easy.on_complete { p 1 }
|
86
|
-
easy.reset
|
87
|
-
expect(easy.on_complete).to be_empty
|
88
|
-
end
|
89
|
-
|
90
|
-
it "resets on_headers" do
|
91
|
-
easy.on_headers { p 1 }
|
92
|
-
easy.reset
|
93
|
-
expect(easy.on_headers).to be_empty
|
94
|
-
end
|
95
|
-
|
96
|
-
it "resets on_body" do
|
97
|
-
easy.on_body { p 1 }
|
98
|
-
easy.reset
|
99
|
-
expect(easy.on_body).to be_empty
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
|
-
describe "#dup" do
|
104
|
-
let!(:easy) do
|
105
|
-
easy = Ethon::Easy.new
|
106
|
-
easy.url = "http://localhost:3001/"
|
107
|
-
easy.on_complete { 'on_complete' }
|
108
|
-
easy.on_headers { 'on_headers' }
|
109
|
-
easy.on_progress { 'on_progress' }
|
110
|
-
easy.response_body = String.new('test_body')
|
111
|
-
easy.response_headers = String.new('test_headers')
|
112
|
-
easy
|
113
|
-
end
|
114
|
-
let!(:e) { easy.dup }
|
115
|
-
|
116
|
-
it "sets a new handle" do
|
117
|
-
expect(e.handle).not_to eq(easy.handle)
|
118
|
-
end
|
119
|
-
|
120
|
-
it "preserves url" do
|
121
|
-
expect(e.url).to eq(easy.url)
|
122
|
-
end
|
123
|
-
|
124
|
-
it "preserves on_complete callback" do
|
125
|
-
expect(e.on_complete).to be(easy.on_complete)
|
126
|
-
end
|
127
|
-
|
128
|
-
it "preserves on_headers callback" do
|
129
|
-
expect(e.on_headers).to be(easy.on_headers)
|
130
|
-
end
|
131
|
-
|
132
|
-
it 'preserves body_write_callback of original handle' do
|
133
|
-
expect { easy.perform }.to change { easy.response_body }
|
134
|
-
expect { easy.perform }.not_to change { e.response_body }
|
135
|
-
end
|
136
|
-
|
137
|
-
it "preserves on_progress callback" do
|
138
|
-
expect(e.on_progress).to be(easy.on_progress)
|
139
|
-
end
|
140
|
-
|
141
|
-
it 'sets new body_write_callback of duplicated handle' do
|
142
|
-
expect { e.perform }.to change { e.response_body }
|
143
|
-
expect { e.perform }.not_to change { easy.response_body }
|
144
|
-
end
|
145
|
-
|
146
|
-
it 'preserves headers_write_callback of original handle' do
|
147
|
-
expect { easy.perform }.to change { easy.response_headers }
|
148
|
-
expect { easy.perform }.not_to change { e.response_headers }
|
149
|
-
end
|
150
|
-
|
151
|
-
it 'sets new headers_write_callback of duplicated handle' do
|
152
|
-
expect { e.perform }.to change { e.response_headers }
|
153
|
-
expect { e.perform }.not_to change { easy.response_headers }
|
154
|
-
end
|
155
|
-
|
156
|
-
it "resets response_body" do
|
157
|
-
expect(e.response_body).to be_empty
|
158
|
-
end
|
159
|
-
|
160
|
-
it "resets response_headers" do
|
161
|
-
expect(e.response_headers).to be_empty
|
162
|
-
end
|
163
|
-
|
164
|
-
it "sets response_body for duplicated Easy" do
|
165
|
-
e.perform
|
166
|
-
expect(e.response_body).not_to be_empty
|
167
|
-
end
|
168
|
-
|
169
|
-
it "sets response_headers for duplicated Easy" do
|
170
|
-
e.perform
|
171
|
-
expect(e.response_headers).not_to be_empty
|
172
|
-
end
|
173
|
-
|
174
|
-
it "preserves response_body for original Easy" do
|
175
|
-
e.perform
|
176
|
-
expect(easy.response_body).to eq('test_body')
|
177
|
-
end
|
178
|
-
|
179
|
-
it "preserves response_headers for original Easy" do
|
180
|
-
e.perform
|
181
|
-
expect(easy.response_headers).to eq('test_headers')
|
182
|
-
end
|
183
|
-
end
|
184
|
-
|
185
|
-
describe "#mirror" do
|
186
|
-
it "returns a Mirror" do
|
187
|
-
expect(easy.mirror).to be_a(Ethon::Easy::Mirror)
|
188
|
-
end
|
189
|
-
|
190
|
-
it "builds from easy" do
|
191
|
-
expect(Ethon::Easy::Mirror).to receive(:from_easy).with(easy)
|
192
|
-
easy.mirror
|
193
|
-
end
|
194
|
-
end
|
195
|
-
|
196
|
-
describe "#log_inspect" do
|
197
|
-
[ :url, :response_code, :return_code, :total_time ].each do |name|
|
198
|
-
it "contains #{name}" do
|
199
|
-
expect(easy.log_inspect).to match name.to_s
|
200
|
-
end
|
201
|
-
end
|
202
|
-
end
|
203
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'spec_helper'
|
3
|
-
|
4
|
-
describe Ethon::Libc do
|
5
|
-
describe "#getdtablesize", :if => !Ethon::Curl.windows? do
|
6
|
-
it "returns an integer" do
|
7
|
-
expect(Ethon::Libc.getdtablesize).to be_a(Integer)
|
8
|
-
end
|
9
|
-
|
10
|
-
it "returns bigger zero", :if => !Ethon::Curl.windows? do
|
11
|
-
expect(Ethon::Libc.getdtablesize).to_not be_zero
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require "spec_helper"
|
3
|
-
|
4
|
-
describe Ethon::Loggable do
|
5
|
-
|
6
|
-
describe "#logger=" do
|
7
|
-
|
8
|
-
let(:logger) do
|
9
|
-
Logger.new($stdout).tap do |log|
|
10
|
-
log.level = Logger::INFO
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
before do
|
15
|
-
Ethon.logger = logger
|
16
|
-
end
|
17
|
-
|
18
|
-
it "sets the logger" do
|
19
|
-
expect(Ethon.logger).to eq(logger)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|