Module: TestApi
- Defined in:
- lib/wd_sinatra/test_helpers.rb
Constant Summary collapse
- URL_PLACEHOLDER =
/\/*(:[a-z A-Z _]+)\/*/
- INTERNAL_X_HEADER =
strip the header marker added by Rack
- MOBILE_X_HEADER =
strip the header marker added by Rack
Class Method Summary collapse
- .delete(uri, params = nil, headers = nil) ⇒ Object
- .get(uri, params = nil, headers = nil) ⇒ Object
- .head(uri, params = nil, headers = nil) ⇒ Object
- .internal_delete(uri, params = nil, headers = nil) ⇒ Object
- .internal_get(uri, params = nil, headers = nil) ⇒ Object
- .internal_head(uri, params = nil, headers = nil) ⇒ Object
- .internal_post(uri, params = nil, headers = nil) ⇒ Object
- .internal_put(uri, params = nil, headers = nil) ⇒ Object
- .json_response ⇒ Object
- .last_response ⇒ Object
- .mobile_account=(account) ⇒ Object
- .mobile_delete(uri, params = nil, headers = nil) ⇒ Object
- .mobile_get(uri, params = nil, headers = nil) ⇒ Object
- .mobile_head(uri, params = nil, headers = nil) ⇒ Object
- .mobile_headers(headers) ⇒ Object
- .mobile_post(uri, params = nil, headers = nil) ⇒ Object
- .mobile_put(uri, params = nil, headers = nil) ⇒ Object
- .post(uri, params = nil, headers = nil) ⇒ Object
- .put(uri, params = nil, headers = nil) ⇒ Object
- .request(verb, uri, params = {}, headers = nil) {|request| ... } ⇒ Object
- .valid_internal_api_headers(headers) ⇒ Object
Class Method Details
.delete(uri, params = nil, headers = nil) ⇒ Object
94 95 96 |
# File 'lib/wd_sinatra/test_helpers.rb', line 94 def delete(uri, params=nil, headers=nil) request(:delete, uri, params, headers) end |
.get(uri, params = nil, headers = nil) ⇒ Object
58 59 60 |
# File 'lib/wd_sinatra/test_helpers.rb', line 58 def get(uri, params=nil, headers=nil) request(:get, uri, params, headers) end |
.head(uri, params = nil, headers = nil) ⇒ Object
106 107 108 |
# File 'lib/wd_sinatra/test_helpers.rb', line 106 def head(uri, params=nil, headers=nil) request(:head, uri, params, headers) end |
.internal_delete(uri, params = nil, headers = nil) ⇒ Object
98 99 100 |
# File 'lib/wd_sinatra/test_helpers.rb', line 98 def internal_delete(uri, params=nil, headers=nil) delete(uri, params, valid_internal_api_headers(headers)) end |
.internal_get(uri, params = nil, headers = nil) ⇒ Object
62 63 64 |
# File 'lib/wd_sinatra/test_helpers.rb', line 62 def internal_get(uri, params=nil, headers=nil) get(uri, params, valid_internal_api_headers(headers)) end |
.internal_head(uri, params = nil, headers = nil) ⇒ Object
110 111 112 |
# File 'lib/wd_sinatra/test_helpers.rb', line 110 def internal_head(uri, params=nil, headers=nil) head(uri, params, valid_internal_api_headers(headers)) end |
.internal_post(uri, params = nil, headers = nil) ⇒ Object
74 75 76 |
# File 'lib/wd_sinatra/test_helpers.rb', line 74 def internal_post(uri, params=nil, headers=nil) post(uri, params, valid_internal_api_headers(headers)) end |
.internal_put(uri, params = nil, headers = nil) ⇒ Object
86 87 88 |
# File 'lib/wd_sinatra/test_helpers.rb', line 86 def internal_put(uri, params=nil, headers=nil) put(uri, params, valid_internal_api_headers(headers)) end |
.json_response ⇒ Object
118 119 120 |
# File 'lib/wd_sinatra/test_helpers.rb', line 118 def json_response @json_response end |
.last_response ⇒ Object
122 123 124 |
# File 'lib/wd_sinatra/test_helpers.rb', line 122 def last_response @json_response.rest_response if @json_response end |
.mobile_account=(account) ⇒ Object
54 55 56 |
# File 'lib/wd_sinatra/test_helpers.rb', line 54 def mobile_account=(account) @account = account end |
.mobile_delete(uri, params = nil, headers = nil) ⇒ Object
102 103 104 |
# File 'lib/wd_sinatra/test_helpers.rb', line 102 def mobile_delete(uri, params=nil, headers=nil) request(:delete, uri, params, mobile_headers(headers)) end |
.mobile_get(uri, params = nil, headers = nil) ⇒ Object
66 67 68 |
# File 'lib/wd_sinatra/test_helpers.rb', line 66 def mobile_get(uri, params=nil, headers=nil) request(:get, uri, params, mobile_headers(headers)) end |
.mobile_head(uri, params = nil, headers = nil) ⇒ Object
114 115 116 |
# File 'lib/wd_sinatra/test_helpers.rb', line 114 def mobile_head(uri, params=nil, headers=nil) request(:head, uri, params, mobile_headers(headers)) end |
.mobile_headers(headers) ⇒ Object
132 133 134 135 136 |
# File 'lib/wd_sinatra/test_helpers.rb', line 132 def mobile_headers(headers) custom_headers = {MOBILE_X_HEADER => @account ? Base64.urlsafe_encode64(@account.mobile_token) : nil} custom_headers.merge!(headers) if headers custom_headers end |
.mobile_post(uri, params = nil, headers = nil) ⇒ Object
78 79 80 |
# File 'lib/wd_sinatra/test_helpers.rb', line 78 def mobile_post(uri, params=nil, headers=nil) request(:post, uri, params, mobile_headers(headers)) end |
.mobile_put(uri, params = nil, headers = nil) ⇒ Object
90 91 92 |
# File 'lib/wd_sinatra/test_helpers.rb', line 90 def mobile_put(uri, params=nil, headers=nil) request(:put, uri, params, mobile_headers(headers)) end |
.post(uri, params = nil, headers = nil) ⇒ Object
70 71 72 |
# File 'lib/wd_sinatra/test_helpers.rb', line 70 def post(uri, params=nil, headers=nil) request(:post, uri, params, headers) end |
.put(uri, params = nil, headers = nil) ⇒ Object
82 83 84 |
# File 'lib/wd_sinatra/test_helpers.rb', line 82 def put(uri, params=nil, headers=nil) request(:put, uri, params, headers) end |
.request(verb, uri, params = {}, headers = nil) {|request| ... } ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/wd_sinatra/test_helpers.rb', line 32 def request(verb, uri, params={}, headers=nil) params ||= {} service_uri = uri.dup matching = uri.scan URL_PLACEHOLDER unless matching.empty? # replace the placeholder by real value matching.flatten.each_with_index do |str, idx| key = str.delete(":").to_sym value = params[key].to_s # delete the value from the params params.delete(key) uri = uri.gsub(str, value) end end request = Requester.new yield request if block_given? headers.each {|name, value| request.header(name, value) } if headers response = request.send(verb, uri, params) @json_response = JsonWrapperResponse.new(response, :verb => verb, :uri => service_uri) end |
.valid_internal_api_headers(headers) ⇒ Object
126 127 128 129 130 |
# File 'lib/wd_sinatra/test_helpers.rb', line 126 def valid_internal_api_headers(headers) custom_headers = {INTERNAL_X_HEADER => AuthHelpers::ALLOWED_API_KEYS[0]} custom_headers.merge!(headers) if headers custom_headers end |