# File lib/heroku/kensa/check.rb, line 271 def call! json = nil response = nil code = nil json = nil callback = "http://localhost:7779/callback/999" reader, writer = nil payload = { :heroku_id => heroku_id, :plan => data[:plan] || 'test', :callback_url => callback, :logplex_token => nil, :options => data[:options] || {} } if data[:async] reader, writer = IO.pipe end test "POST #{base_path}" check "response" do if data[:async] child = fork do reader.close server = TCPServer.open(7779) client = server.accept writer.write(client.readpartial(READLEN)) client.write("HTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n") client.close writer.close end sleep(1) end code, json = post(credentials, base_path, payload) if code == 200 # noop elsif code == -1 error("unable to connect to #{url}") else error("expected 200, got #{code}") end true end if data[:async] check "async response to PUT #{callback}" do out = reader.readpartial(READLEN) _, json = out.split("\r\n\r\n") end end check "valid JSON" do begin response = OkJson.decode(json) rescue OkJson::Error => boom error boom.message rescue NoMethodError => boom error "error parsing JSON" end true end check "authentication" do wrong_credentials = ['wrong', 'secret'] code, _ = post(wrong_credentials, base_path, payload) error("expected 401, got #{code}") if code != 401 true end data[:provision_response] = response run ProvisionResponseCheck, data end
Generated with the Darkfish Rdoc Generator 2.