diff --git a/lib/mixpanel-ruby/consumer.rb b/lib/mixpanel-ruby/consumer.rb index f5ce029..121ae75 100644 --- a/lib/mixpanel-ruby/consumer.rb +++ b/lib/mixpanel-ruby/consumer.rb @@ -124,7 +124,7 @@ def request(endpoint, form_data) request.set_form_data(form_data) client = Net::HTTP.new(uri.host, uri.port) - client.use_ssl = true + client.use_ssl = (uri.scheme == 'https') client.open_timeout = 10 client.continue_timeout = 10 client.read_timeout = 10 diff --git a/spec/mixpanel-ruby/consumer_spec.rb b/spec/mixpanel-ruby/consumer_spec.rb index 0e37dc3..9cb8f29 100644 --- a/spec/mixpanel-ruby/consumer_spec.rb +++ b/spec/mixpanel-ruby/consumer_spec.rb @@ -3,6 +3,7 @@ require 'webmock' require 'mixpanel-ruby/consumer' +require 'mixpanel-ruby/error' describe Mixpanel::Consumer do before { WebMock.reset! } @@ -88,6 +89,17 @@ def request(*args) it_behaves_like 'consumer' end + context 'custom http endpoints' do + let(:endpoints) { ["http://example.com/track", nil, nil] } + subject { Mixpanel::Consumer.new(*endpoints) } + + it 'should not use ssl' do + stub_request(:any, endpoints.first).to_return({:body => '{"status": 1, "error": null}'}) + expect { subject.send!(:event, {'data' => 'TEST EVENT MESSAGE'}.to_json) }.not_to raise_error # WebMock::NetConnectNotAllowedError + expect(WebMock).to have_requested(:post, endpoints.first) + end + end + end describe Mixpanel::BufferedConsumer do