omnicontacts 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1 +1,4 @@
1
1
  coverage
2
+ *.iml
3
+ .idea
4
+ .DS_Store
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- omnicontacts (0.1.5)
4
+ omnicontacts (0.1.6)
5
5
  json
6
6
  rack
7
7
 
data/lib/omnicontacts.rb CHANGED
@@ -1,8 +1,6 @@
1
- require "rack"
2
-
3
1
  module OmniContacts
4
2
 
5
- VERSION = "0.1.5"
3
+ VERSION = "0.1.6"
6
4
 
7
5
  autoload :Builder, "omnicontacts/builder"
8
6
  autoload :Importer, "omnicontacts/importer"
@@ -14,7 +14,7 @@ require "base64"
14
14
  # * access_token_path -> the path to query in order to obtain the access token
15
15
  module OmniContacts
16
16
  module Authorization
17
- module OAuth1
17
+ module OAuth1
18
18
  include HTTPUtils
19
19
 
20
20
  OAUTH_VERSION = "1.0"
@@ -41,11 +41,11 @@ module OmniContacts
41
41
  end
42
42
 
43
43
  def random_string
44
- (0...50).map{ ('a'..'z').to_a[rand(26)] }.join
44
+ (0...50).map { ('a'..'z').to_a[rand(26)] }.join
45
45
  end
46
46
 
47
47
  def timestamp
48
- Time.now.to_i.to_s
48
+ Time.now.to_i.to_s
49
49
  end
50
50
 
51
51
  def values_from_query_string query_string, keys_to_extract
@@ -71,11 +71,11 @@ module OmniContacts
71
71
  # The result comprises the access token, the access token secret and a list of additional fields extracted from the server's response.
72
72
  # The list of additional fields to extract is specified as last parameter
73
73
  def fetch_access_token auth_token, auth_token_secret, auth_verifier, additional_fields_to_extract = []
74
- access_token_resp = https_post(auth_host, access_token_path, access_token_req_params(auth_token, auth_token_secret, auth_verifier))
75
- values_from_query_string(access_token_resp, ( ["oauth_token", "oauth_token_secret"] + additional_fields_to_extract) )
74
+ access_token_resp = https_post(auth_host, access_token_path, access_token_req_params(auth_token, auth_token_secret, auth_verifier))
75
+ values_from_query_string(access_token_resp, (["oauth_token", "oauth_token_secret"] + additional_fields_to_extract))
76
76
  end
77
77
 
78
- private
78
+ private
79
79
 
80
80
  def access_token_req_params auth_token, auth_token_secret, auth_verifier
81
81
  {
@@ -27,13 +27,13 @@ module OmniContacts
27
27
 
28
28
  def authorize_url_params
29
29
  to_query_string({
30
- :client_id => client_id,
31
- :scope => encode(scope),
32
- :response_type => "code",
33
- :access_type => "offline",
34
- :approval_prompt => "force",
35
- :redirect_uri => encode(redirect_uri)
36
- })
30
+ :client_id => client_id,
31
+ :scope => encode(scope),
32
+ :response_type => "code",
33
+ :access_type => "offline",
34
+ :approval_prompt => "force",
35
+ :redirect_uri => encode(redirect_uri)
36
+ })
37
37
  end
38
38
 
39
39
  public
@@ -58,7 +58,7 @@ module OmniContacts
58
58
  def access_token_from_response response
59
59
  json = JSON.parse(response)
60
60
  raise json["error"] if json["error"]
61
- [ json["access_token"], json["token_type"], json["refresh_token"] ]
61
+ [json["access_token"], json["token_type"], json["refresh_token"]]
62
62
  end
63
63
 
64
64
  public
@@ -77,7 +77,7 @@ module OmniContacts
77
77
  :refresh_token => refresh_token,
78
78
  :grant_type => "refresh_token"
79
79
  }
80
-
80
+
81
81
  end
82
82
  end
83
83
  end
@@ -2,7 +2,7 @@ require "omnicontacts"
2
2
 
3
3
  module OmniContacts
4
4
  class Builder < Rack::Builder
5
- def initialize(app,&block)
5
+ def initialize(app, &block)
6
6
  if rack14?
7
7
  super
8
8
  else
@@ -10,13 +10,13 @@ module OmniContacts
10
10
 
11
11
  module_function
12
12
 
13
- def query_string_to_map query_string
13
+ def query_string_to_map query_string
14
14
  query_string.split('&').reduce({}) do |memo, key_value|
15
- (key,value) = key_value.split('=')
15
+ (key, value) = key_value.split('=')
16
16
  memo[key]= value
17
17
  memo
18
- end
19
- end
18
+ end
19
+ end
20
20
 
21
21
  def to_query_string map
22
22
  map.collect do |key, value|
@@ -34,11 +34,11 @@ module OmniContacts
34
34
  # If port is 80 the result is scheme://host
35
35
  # According to Rack specification the HTTP_HOST variable is preferred over SERVER_NAME.
36
36
  def host_url_from_rack_env env
37
- port = ( (env["SERVER_PORT"] == 80) && "") || ":#{env['SERVER_PORT']}"
37
+ port = ((env["SERVER_PORT"] == 80) && "") || ":#{env['SERVER_PORT']}"
38
38
  host = (env["HTTP_HOST"]) || (env["SERVER_NAME"] + port)
39
39
  scheme(env) + "://" + host
40
40
  end
41
-
41
+
42
42
  def scheme env
43
43
  if env['HTTPS'] == 'on'
44
44
  'https'
@@ -65,8 +65,8 @@ module OmniContacts
65
65
 
66
66
  # Executes an HTTP POST request over SSL
67
67
  # It raises a RuntimeError if the response code is not equal to 200
68
- def https_post host,path, params
69
- https_connection host do |connection|
68
+ def https_post host, path, params
69
+ https_connection host do |connection|
70
70
  connection.request_post(path, to_query_string(params))
71
71
  end
72
72
  end
@@ -74,7 +74,7 @@ module OmniContacts
74
74
  # Executes an HTTP GET request over SSL
75
75
  # It raises a RuntimeError if the response code is not equal to 200
76
76
  def https_get host, path, params, headers =[]
77
- https_connection host do |connection|
77
+ https_connection host do |connection|
78
78
  connection.request_get(path + "?" + to_query_string(params), headers)
79
79
  end
80
80
  end
@@ -18,18 +18,18 @@ module OmniContacts
18
18
  end
19
19
 
20
20
  def fetch_contacts_using_access_token access_token, token_type
21
- contacts_response = https_get(@contacts_host, @contacts_path, contacts_req_params, contacts_req_headers(access_token, token_type))
21
+ contacts_response = https_get(@contacts_host, @contacts_path, contacts_req_params, contacts_req_headers(access_token, token_type))
22
22
  parse_contacts contacts_response
23
23
  end
24
24
 
25
- private
25
+ private
26
26
 
27
27
  def contacts_req_params
28
- { "max-results" => "100"}
28
+ {"max-results" => "100"}
29
29
  end
30
30
 
31
31
  def contacts_req_headers token, token_type
32
- {"GData-Version" => "3.0", "Authorization" => "#{token_type} #{token}"}
32
+ {"GData-Version" => "3.0", "Authorization" => "#{token_type} #{token}"}
33
33
  end
34
34
 
35
35
  def parse_contacts contacts_as_xml
@@ -46,7 +46,7 @@ module OmniContacts
46
46
  contacts << contact
47
47
  end
48
48
  end
49
- contacts
49
+ contacts
50
50
  end
51
51
 
52
52
  end
@@ -18,14 +18,14 @@ module OmniContacts
18
18
  end
19
19
 
20
20
  def fetch_contacts_using_access_token access_token, access_token_secret
21
- contacts_response = https_get(@contacts_host, @contacts_path, :access_token =>access_token)
21
+ contacts_response = https_get(@contacts_host, @contacts_path, :access_token => access_token)
22
22
  contacts_from_response contacts_response
23
23
  end
24
24
 
25
25
  private
26
26
 
27
27
  def contacts_from_response contacts_as_json
28
- json = JSON.parse(escape_windows_format(contacts_as_json))
28
+ json = JSON.parse(escape_windows_format(contacts_as_json))
29
29
  result = []
30
30
  json["data"].each do |contact|
31
31
  result << {:email => contact["name"]} if valid_email? contact["name"]
@@ -34,7 +34,7 @@ module OmniContacts
34
34
  end
35
35
 
36
36
  def escape_windows_format value
37
- value.gsub(/[\r\s]/,'')
37
+ value.gsub(/[\r\s]/, '')
38
38
  end
39
39
 
40
40
  def valid_email? value
@@ -3,7 +3,7 @@ require "json"
3
3
 
4
4
  module OmniContacts
5
5
  module Importer
6
- class Yahoo < Middleware::OAuth1
6
+ class Yahoo < Middleware::OAuth1
7
7
 
8
8
  attr_reader :auth_host, :auth_token_path, :auth_path, :access_token_path
9
9
 
@@ -19,7 +19,7 @@ module OmniContacts
19
19
  def fetch_contacts_from_token_and_verifier auth_token, auth_token_secret, auth_verifier
20
20
  (access_token, access_token_secret, guid) = fetch_access_token(auth_token, auth_token_secret, auth_verifier, ["xoauth_yahoo_guid"])
21
21
  contacts_path = "/v1/user/#{guid}/contacts"
22
- contacts_response = http_get(@contacts_host, contacts_path, contacts_req_params(access_token, access_token_secret, contacts_path) )
22
+ contacts_response = http_get(@contacts_host, contacts_path, contacts_req_params(access_token, access_token_secret, contacts_path))
23
23
  contacts_from_response contacts_response
24
24
  end
25
25
 
@@ -35,13 +35,13 @@ module OmniContacts
35
35
  :oauth_token => access_token,
36
36
  :oauth_version => OmniContacts::Authorization::OAuth1::OAUTH_VERSION,
37
37
  :view => "compact"
38
- }
38
+ }
39
39
  contacts_url = "http://#{@contacts_host}#{contacts_path}"
40
40
  params["oauth_signature"] = oauth_signature("GET", contacts_url, params, access_token_secret)
41
41
  params
42
42
  end
43
43
 
44
- def contacts_from_response contacts_as_json
44
+ def contacts_from_response contacts_as_json
45
45
  json = JSON.parse(contacts_as_json)
46
46
  result = []
47
47
  return result unless json["contacts"]["contact"]
@@ -49,13 +49,13 @@ module OmniContacts
49
49
  private
50
50
 
51
51
  def handle_initial_request
52
- execute_and_rescue_exceptions do
52
+ execute_and_rescue_exceptions do
53
53
  request_authorization_from_user
54
54
  end
55
55
  end
56
56
 
57
57
  def handle_callback
58
- execute_and_rescue_exceptions do
58
+ execute_and_rescue_exceptions do
59
59
  @env["omnicontacts.contacts"] = fetch_contacts
60
60
  @app.call(@env)
61
61
  end
@@ -64,13 +64,13 @@ module OmniContacts
64
64
  # This method rescues executes a block of code and
65
65
  # rescue all exceptions. In case of an exception the
66
66
  # user is redirected to the failure endpoint.
67
- def execute_and_rescue_exceptions
67
+ def execute_and_rescue_exceptions
68
68
  yield
69
69
  rescue AuthorizationError => e
70
70
  handle_error :not_authorized, e
71
71
  rescue ::Timeout::Error, ::Errno::ETIMEDOUT => e
72
72
  handle_error :timeout, e
73
- rescue ::RuntimeError => e
73
+ rescue ::RuntimeError => e
74
74
  handle_error :internal_error, e
75
75
  end
76
76
 
@@ -35,11 +35,11 @@ module OmniContacts
35
35
  (auth_token, auth_token_secret) = fetch_authorization_token
36
36
  session[@token_prop_name] = auth_token
37
37
  session[token_secret_prop_name(auth_token)] = auth_token_secret
38
- redirect_to_authorization_site(auth_token)
38
+ redirect_to_authorization_site(auth_token)
39
39
  end
40
40
 
41
41
  def token_secret_prop_name oauth_token
42
- "#{base_prop_name}.#{oauth_token}.oauth_token_secret"
42
+ "#{base_prop_name}.#{oauth_token}.oauth_token_secret"
43
43
  end
44
44
 
45
45
  def redirect_to_authorization_site auth_token
@@ -41,7 +41,7 @@ module OmniContacts
41
41
  # If no authorization code is found in the query string an
42
42
  # AuthoriazationError is raised.
43
43
  def fetch_contacts
44
- code = query_string_to_map(@env["QUERY_STRING"])["code"]
44
+ code = query_string_to_map(@env["QUERY_STRING"])["code"]
45
45
  if code
46
46
  refresh_token = session[refresh_token_prop_name(code)]
47
47
  (access_token, token_type, refresh_token) = if refresh_token
@@ -1,11 +1,11 @@
1
1
  require "spec_helper"
2
2
  require "omnicontacts/authorization/oauth1"
3
3
 
4
- describe OmniContacts::Authorization::OAuth1 do
4
+ describe OmniContacts::Authorization::OAuth1 do
5
5
 
6
- before(:all) do
6
+ before(:all) do
7
7
  OAuth1TestClass= Struct.new(:consumer_key, :consumer_secret, :auth_host, :auth_token_path, :auth_path, :access_token_path, :callback)
8
- class OAuth1TestClass
8
+ class OAuth1TestClass
9
9
  include OmniContacts::Authorization::OAuth1
10
10
  end
11
11
  end
@@ -14,9 +14,9 @@ describe OmniContacts::Authorization::OAuth1 do
14
14
  OAuth1TestClass.new("consumer_key", "secret1", "auth_host", "auth_token_path", "auth_path", "access_token_path", "callback")
15
15
  end
16
16
 
17
- describe "fetch_authorization_token" do
17
+ describe "fetch_authorization_token" do
18
18
 
19
- it "should request the token providing all mandatory parameters" do
19
+ it "should request the token providing all mandatory parameters" do
20
20
  test_target.should_receive(:https_post) do |host, path, params|
21
21
  host.should eq(test_target.auth_host)
22
22
  path.should eq(test_target.auth_token_path)
@@ -32,25 +32,25 @@ describe OmniContacts::Authorization::OAuth1 do
32
32
  test_target.fetch_authorization_token
33
33
  end
34
34
 
35
- it "should successfully parse the result" do
35
+ it "should successfully parse the result" do
36
36
  test_target.should_receive(:https_post).and_return("oauth_token=token&oauth_token_secret=token_secret")
37
37
  test_target.fetch_authorization_token.should eq(["token", "token_secret"])
38
38
  end
39
39
 
40
- it "should raise an error if request is invalid" do
40
+ it "should raise an error if request is invalid" do
41
41
  test_target.should_receive(:https_post).and_return("invalid_request")
42
- expect{test_target.fetch_authorization_token}.should raise_error
42
+ expect { test_target.fetch_authorization_token }.should raise_error
43
43
  end
44
44
 
45
45
  end
46
46
 
47
- describe "authorization_url" do
48
- subject{test_target.authorization_url("token")}
49
- it{should eq("https://#{test_target.auth_host}#{test_target.auth_path}?oauth_token=token")}
47
+ describe "authorization_url" do
48
+ subject { test_target.authorization_url("token") }
49
+ it { should eq("https://#{test_target.auth_host}#{test_target.auth_path}?oauth_token=token") }
50
50
  end
51
51
 
52
- describe "fetch_access_token" do
53
- it "should request the access token using all required parameters" do
52
+ describe "fetch_access_token" do
53
+ it "should request the access token using all required parameters" do
54
54
  auth_token = "token"
55
55
  auth_token_secret = "token_secret"
56
56
  auth_verifier = "verifier"
@@ -69,14 +69,14 @@ describe OmniContacts::Authorization::OAuth1 do
69
69
  test_target.fetch_access_token auth_token, auth_token_secret, auth_verifier, ["other_param"]
70
70
  end
71
71
 
72
- it "should successfully extract access_token and the other fields" do
72
+ it "should successfully extract access_token and the other fields" do
73
73
  test_target.should_receive(:https_post).and_return("oauth_token=access_token&oauth_token_secret=access_token_secret&other_param=other_value")
74
- test_target.fetch_access_token("token","token_scret","verified",["other_param"]).should eq(["access_token", "access_token_secret", "other_value"])
74
+ test_target.fetch_access_token("token", "token_scret", "verified", ["other_param"]).should eq(["access_token", "access_token_secret", "other_value"])
75
75
  end
76
76
  end
77
77
 
78
78
  describe "oauth_signature" do
79
- subject{ test_target.oauth_signature("GET", "http://social.yahooapis.com/v1/user", {:name => "diego", :surname => "castorina"}, "secret2")}
80
- it{ should eq("ZqWoQISWcuz%2FSDnDxWihtsFDKwc%3D")}
79
+ subject { test_target.oauth_signature("GET", "http://social.yahooapis.com/v1/user", {:name => "diego", :surname => "castorina"}, "secret2") }
80
+ it { should eq("ZqWoQISWcuz%2FSDnDxWihtsFDKwc%3D") }
81
81
  end
82
82
  end
@@ -1,32 +1,32 @@
1
1
  require "spec_helper"
2
2
  require "omnicontacts/authorization/oauth2"
3
3
 
4
- describe OmniContacts::Authorization::OAuth2 do
4
+ describe OmniContacts::Authorization::OAuth2 do
5
5
 
6
- before(:all) do
7
- OAuth2TestClass= Struct.new(:auth_host, :authorize_path, :client_id, :client_secret, :scope, :redirect_uri,:auth_token_path)
8
- class OAuth2TestClass
6
+ before(:all) do
7
+ OAuth2TestClass= Struct.new(:auth_host, :authorize_path, :client_id, :client_secret, :scope, :redirect_uri, :auth_token_path)
8
+ class OAuth2TestClass
9
9
  include OmniContacts::Authorization::OAuth2
10
10
  end
11
11
  end
12
12
 
13
- let(:test_target) do
13
+ let(:test_target) do
14
14
  OAuth2TestClass.new("auth_host", "authorize_path", "client_id", "client_secret", "scope", "redirect_uri", "auth_token_path")
15
15
  end
16
16
 
17
- describe "authorization_url" do
17
+ describe "authorization_url" do
18
18
 
19
- subject {test_target.authorization_url}
19
+ subject { test_target.authorization_url }
20
20
 
21
- it {should include("https://#{test_target.auth_host}#{test_target.authorize_path}")}
22
- it {should include("client_id=#{test_target.client_id}")}
23
- it {should include("scope=#{test_target.scope}")}
24
- it {should include("redirect_uri=#{test_target.redirect_uri}")}
25
- it {should include("access_type=offline")}
26
- it {should include("response_type=code")}
21
+ it { should include("https://#{test_target.auth_host}#{test_target.authorize_path}") }
22
+ it { should include("client_id=#{test_target.client_id}") }
23
+ it { should include("scope=#{test_target.scope}") }
24
+ it { should include("redirect_uri=#{test_target.redirect_uri}") }
25
+ it { should include("access_type=offline") }
26
+ it { should include("response_type=code") }
27
27
  end
28
28
 
29
- let(:access_token_response) {%[{"access_token": "access_token", "token_type":"token_type", "refresh_token":"refresh_token"}] }
29
+ let(:access_token_response) { %[{"access_token": "access_token", "token_type":"token_type", "refresh_token":"refresh_token"}] }
30
30
 
31
31
  describe "fetch_access_token" do
32
32
 
@@ -45,7 +45,7 @@ describe OmniContacts::Authorization::OAuth2 do
45
45
  test_target.fetch_access_token code
46
46
  end
47
47
 
48
- it "should successfully parse the token from the JSON response" do
48
+ it "should successfully parse the token from the JSON response" do
49
49
  test_target.should_receive(:https_post).and_return(access_token_response)
50
50
  (access_token, token_type, refresh_token) = test_target.fetch_access_token "code"
51
51
  access_token.should eq("access_token")
@@ -53,19 +53,19 @@ describe OmniContacts::Authorization::OAuth2 do
53
53
  refresh_token.should eq("refresh_token")
54
54
  end
55
55
 
56
- it "should raise if the http request fails" do
56
+ it "should raise if the http request fails" do
57
57
  test_target.should_receive(:https_post).and_raise("Invalid code")
58
- expect{test_target.fetch_access_token("code")}.should raise_error
58
+ expect { test_target.fetch_access_token("code") }.should raise_error
59
59
  end
60
60
 
61
61
  it "should raise an error if the JSON response contains an error field" do
62
62
  test_target.should_receive(:https_post).and_return(%[{"error": "error_message"}])
63
- expect{test_target.fetch_access_token("code")}.should raise_error
63
+ expect { test_target.fetch_access_token("code") }.should raise_error
64
64
  end
65
65
  end
66
66
 
67
- describe "refresh_access_token" do
68
- it "should provide all mandatory fields in a https post request" do
67
+ describe "refresh_access_token" do
68
+ it "should provide all mandatory fields in a https post request" do
69
69
  refresh_token = "refresh_token"
70
70
  test_target.should_receive(:https_post) do |host, path, params|
71
71
  host.should eq(test_target.auth_host)
@@ -79,7 +79,7 @@ describe OmniContacts::Authorization::OAuth2 do
79
79
  test_target.refresh_access_token refresh_token
80
80
  end
81
81
 
82
- it "should successfully parse the token from the JSON response" do
82
+ it "should successfully parse the token from the JSON response" do
83
83
  test_target.should_receive(:https_post).and_return(access_token_response)
84
84
  (access_token, token_type, refresh_token) = test_target.refresh_access_token "refresh_token"
85
85
  access_token.should eq("access_token")
@@ -6,13 +6,13 @@ describe OmniContacts::HTTPUtils do
6
6
  describe "to_query_string" do
7
7
  it "should create a query string from a map" do
8
8
  OmniContacts::HTTPUtils.to_query_string(:name => "john", :surname => "doe").should eq("name=john&surname=doe")
9
- end
9
+ end
10
10
  end
11
11
 
12
12
  describe "encode" do
13
13
  it "should encode the space" do
14
14
  OmniContacts::HTTPUtils.encode("name=\"john\"").should eq("name%3D%22john%22")
15
- end
15
+ end
16
16
  end
17
17
 
18
18
  describe "query_string_to_map" do
@@ -26,7 +26,7 @@ describe OmniContacts::HTTPUtils do
26
26
 
27
27
  describe "host_url_from_rack_env" do
28
28
  it "should calculate the host url using the HTTP_HOST variable" do
29
- env = {"rack.url_scheme" => "http", "HTTP_HOST" => "localhost:8080","SERVER_NAME" => "localhost", "SERVER_PORT" => 8080}
29
+ env = {"rack.url_scheme" => "http", "HTTP_HOST" => "localhost:8080", "SERVER_NAME" => "localhost", "SERVER_PORT" => 8080}
30
30
  OmniContacts::HTTPUtils.host_url_from_rack_env(env).should eq("http://localhost:8080")
31
31
  end
32
32
 
@@ -38,7 +38,7 @@ describe OmniContacts::HTTPUtils do
38
38
 
39
39
  describe "https_post" do
40
40
 
41
- before(:each) do
41
+ before(:each) do
42
42
  @connection = double
43
43
  Net::HTTP.should_receive(:new).and_return(@connection)
44
44
  @connection.should_receive(:use_ssl=).with(true)
@@ -62,7 +62,7 @@ describe OmniContacts::HTTPUtils do
62
62
  @connection.should_receive(:request_get).and_return(@response)
63
63
  @response.should_receive(:code).and_return("500")
64
64
  @response.should_receive(:body).and_return("some error message")
65
- expect {@test_target.send(:https_get, "host", "path", {})}.should raise_error
65
+ expect { @test_target.send(:https_get, "host", "path", {}) }.should raise_error
66
66
  end
67
67
  end
68
68
  end
@@ -1,9 +1,9 @@
1
1
  require "spec_helper"
2
2
  require "omnicontacts/importer/gmail"
3
3
 
4
- describe OmniContacts::Importer::Gmail do
4
+ describe OmniContacts::Importer::Gmail do
5
5
 
6
- let(:gmail) { OmniContacts::Importer::Gmail.new( {}, "client_id", "client_secret") }
6
+ let(:gmail) { OmniContacts::Importer::Gmail.new({}, "client_id", "client_secret") }
7
7
 
8
8
  let(:contacts_as_xml) {
9
9
  "<entry xmlns:gd='http://schemas.google.com/g/2005'>
@@ -14,12 +14,12 @@ describe OmniContacts::Importer::Gmail do
14
14
  </entry>"
15
15
  }
16
16
 
17
- describe "fetch_contacts_using_access_token" do
17
+ describe "fetch_contacts_using_access_token" do
18
18
 
19
- let(:token) { "token"}
19
+ let(:token) { "token" }
20
20
  let(:token_type) { "token_type" }
21
21
 
22
- it "should request the contacts by specifying version and code in the http headers" do
22
+ it "should request the contacts by specifying version and code in the http headers" do
23
23
  gmail.should_receive(:https_get) do |host, path, params, headers|
24
24
  headers["GData-Version"].should eq("3.0")
25
25
  headers["Authorization"].should eq("#{token_type} #{token}")
@@ -28,7 +28,7 @@ describe OmniContacts::Importer::Gmail do
28
28
  gmail.fetch_contacts_using_access_token token, token_type
29
29
  end
30
30
 
31
- it "should correctly parse name and email" do
31
+ it "should correctly parse name and email" do
32
32
  gmail.should_receive(:https_get).and_return(contacts_as_xml)
33
33
  result = gmail.fetch_contacts_using_access_token token, token_type
34
34
  result.size.should be(1)
@@ -1,9 +1,9 @@
1
1
  require "spec_helper"
2
2
  require "omnicontacts/importer/hotmail"
3
3
 
4
- describe OmniContacts::Importer::Hotmail do
4
+ describe OmniContacts::Importer::Hotmail do
5
5
 
6
- let(:hotmail) {OmniContacts::Importer::Hotmail.new({}, "client_id", "client_secret") }
6
+ let(:hotmail) { OmniContacts::Importer::Hotmail.new({}, "client_id", "client_secret") }
7
7
 
8
8
  let(:contacts_as_json) {
9
9
  "{
@@ -20,28 +20,28 @@ describe OmniContacts::Importer::Hotmail do
20
20
  \"birth_day\": 29,
21
21
  \"birth_month\": 3
22
22
  }]
23
- }"}
23
+ }" }
24
24
 
25
- describe "fetch_contacts_using_access_token" do
25
+ describe "fetch_contacts_using_access_token" do
26
26
 
27
- let(:token) { "token"}
28
- let(:token_type) { "token_type" }
27
+ let(:token) { "token" }
28
+ let(:token_type) { "token_type" }
29
29
 
30
- it "should request the contacts by providing the token in the url" do
31
- hotmail.should_receive(:https_get) do |host, path, params, headers|
32
- params[:access_token].should eq(token)
33
- contacts_as_json
34
- end
35
- hotmail.fetch_contacts_using_access_token token, token_type
30
+ it "should request the contacts by providing the token in the url" do
31
+ hotmail.should_receive(:https_get) do |host, path, params, headers|
32
+ params[:access_token].should eq(token)
33
+ contacts_as_json
36
34
  end
35
+ hotmail.fetch_contacts_using_access_token token, token_type
36
+ end
37
37
 
38
- it "should correctly parse the contacts" do
39
- hotmail.should_receive(:https_get).and_return(contacts_as_json)
40
- result = hotmail.fetch_contacts_using_access_token token, token_type
41
- result.size.should be(1)
42
- result.first[:name].should be_nil
43
- result.first[:email].should eq("henrik@hotmail.com")
44
- end
38
+ it "should correctly parse the contacts" do
39
+ hotmail.should_receive(:https_get).and_return(contacts_as_json)
40
+ result = hotmail.fetch_contacts_using_access_token token, token_type
41
+ result.size.should be(1)
42
+ result.first[:name].should be_nil
43
+ result.first[:email].should eq("henrik@hotmail.com")
45
44
  end
45
+ end
46
46
 
47
47
  end
@@ -9,9 +9,9 @@ describe OmniContacts::Importer::Yahoo do
9
9
  {"start":1, "count":1,
10
10
  "contact":[{"id":10, "fields":[{"id":819, "type":"email", "value":"john@yahoo.com"},
11
11
  {"type":"name", "value": { "givenName":"John", "familyName":"Doe"} }] }]
12
- } }'}
12
+ } }' }
13
13
 
14
- let(:yahoo) { OmniContacts::Importer::Yahoo.new( {}, "consumer_key", "consumer_secret" ) }
14
+ let(:yahoo) { OmniContacts::Importer::Yahoo.new({}, "consumer_key", "consumer_secret") }
15
15
 
16
16
  it "should request the contacts by specifying all required parameters" do
17
17
  yahoo.should_receive(:fetch_access_token).and_return(["access_token", "access_token_secret", "guid"])
@@ -17,13 +17,14 @@ describe OmniContacts::Middleware::OAuth1 do
17
17
  "http://www.example.com"
18
18
  end
19
19
 
20
- def fetch_contacts_from_token_and_verifier oauth_token, ouath_token_secret, oauth_verifier
20
+ def fetch_contacts_from_token_and_verifier oauth_token, ouath_token_secret, oauth_verifier
21
21
  [{:name => "John Doe", :email => "john@example.com"}]
22
22
  end
23
23
 
24
24
  def self.mock_session
25
25
  @mock_session ||= {}
26
26
  end
27
+
27
28
  def session
28
29
  OAuth1Middleware.mock_session
29
30
  end
@@ -32,8 +33,8 @@ describe OmniContacts::Middleware::OAuth1 do
32
33
 
33
34
  let(:app) {
34
35
  Rack::Builder.new do |b|
35
- b.use OAuth1Middleware, "consumer_id", "consumer_secret"
36
- b.run lambda{ |env| [200, {"Content-Type" => "text/html"}, ["Hello World"]] }
36
+ b.use OAuth1Middleware, "consumer_id", "consumer_secret"
37
+ b.run lambda { |env| [200, {"Content-Type" => "text/html"}, ["Hello World"]] }
37
38
  end.to_app
38
39
  }
39
40
 
@@ -61,11 +62,11 @@ describe OmniContacts::Middleware::OAuth1 do
61
62
  last_request.env["omnicontacts.contacts"].size.should be(1)
62
63
  end
63
64
 
64
- it "should redirect to failure url if oauth_token_secret is not found in the session" do
65
+ it "should redirect to failure url if oauth_token_secret is not found in the session" do
65
66
  OAuth1Middleware.mock_session.should_receive(:[]).and_return(nil)
66
67
  get "/contacts/oauth1middleware/callback?oauth_token=token&oauth_verifier=verifier"
67
68
  last_response.should be_redirect
68
- last_response.headers["location"].should eq("/contacts/failure?error_message=not_authorized")
69
+ last_response.headers["location"].should eq("/contacts/failure?error_message=not_authorized")
69
70
  end
70
71
  end
71
72
  end
@@ -1,9 +1,9 @@
1
1
  require "spec_helper"
2
2
  require "omnicontacts/middleware/oauth2"
3
3
 
4
- describe OmniContacts::Middleware::OAuth2 do
4
+ describe OmniContacts::Middleware::OAuth2 do
5
5
 
6
- before(:all) do
6
+ before(:all) do
7
7
  class OAuth2Middleware < OmniContacts::Middleware::OAuth2
8
8
  def authorization_url
9
9
  "http://www.example.com"
@@ -18,11 +18,11 @@ describe OmniContacts::Middleware::OAuth2 do
18
18
  end
19
19
 
20
20
  def session
21
- OAuth2Middleware.mock_session
21
+ OAuth2Middleware.mock_session
22
22
  end
23
23
 
24
24
  def fetch_access_token code
25
- ["access_token", "token_type", "token_refresh"]
25
+ ["access_token", "token_type", "token_refresh"]
26
26
  end
27
27
 
28
28
  def fetch_contacts_using_access_token token, token_type
@@ -33,8 +33,8 @@ describe OmniContacts::Middleware::OAuth2 do
33
33
 
34
34
  let(:app) {
35
35
  Rack::Builder.new do |b|
36
- b.use OAuth2Middleware, "client_id", "client_secret"
37
- b.run lambda{ |env| [200, {"Content-Type" => "text/html"}, ["Hello World"]] }
36
+ b.use OAuth2Middleware, "client_id", "client_secret"
37
+ b.run lambda { |env| [200, {"Content-Type" => "text/html"}, ["Hello World"]] }
38
38
  end.to_app
39
39
  }
40
40
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omnicontacts
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-03 00:00:00.000000000 Z
12
+ date: 2012-05-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack