bluevia 1.0

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.
@@ -0,0 +1,15 @@
1
+ #require 'parts'
2
+ module Multipartable
3
+ DEFAULT_BOUNDARY = "-----------RubyMultipartPost"
4
+ def initialize(path, params, headers={}, boundary = DEFAULT_BOUNDARY)
5
+ super(path, headers)
6
+ parts = params.map {|k,v| Parts::Part.new(boundary, k, v)}
7
+ parts << Parts::EpiloguePart.new(boundary)
8
+ ios = parts.map{|p| p.to_io }
9
+ self.set_content_type("multipart/form-data", { "boundary" => boundary })
10
+ # smoking area
11
+ # content_length is invalid and it deletes 2 bytes per part in multipart
12
+ self.content_length = parts.inject(-2) {|sum,i| sum + (i.length + 2)}
13
+ self.body_stream = CompositeReadIO.new(*ios)
14
+ end
15
+ end
@@ -0,0 +1,67 @@
1
+ #
2
+ # BlueVia is a global iniciative of Telefonica delivered by Movistar and O2.
3
+ # Please, check out www.bluevia.com and if you need more information
4
+ # contact us at mailto:support@bluevia.com
5
+
6
+ $:.unshift File.join(File.dirname(__FILE__),'..','lib')
7
+
8
+ require 'test/unit'
9
+ require 'bluevia'
10
+ require 'test_config'
11
+
12
+ class TestAdvertising < Test::Unit::TestCase
13
+ include TestConfig
14
+ def setup
15
+ create_client(false, :Advertising)
16
+ end
17
+
18
+ def test_get_ad
19
+ get_ad
20
+ end
21
+
22
+ def test_get_ad_fails
23
+ get_ad_fails
24
+ end
25
+
26
+ def test_get_ad_commercial
27
+ create_client(true, :Advertising)
28
+ get_ad
29
+ end
30
+
31
+ def t_test_get_ad_commercial_fails
32
+ create_client(true, :Advertising)
33
+ get_ad_fails
34
+ end
35
+
36
+ private
37
+
38
+ def get_ad
39
+ params = {:user_agent => "Mozilla 5.0",
40
+ :ad_request_id => "a1x4zasg58",
41
+ :ad_space => "1200"
42
+ }
43
+ response = @service.request(params)
44
+
45
+ assert_equal response.instance_of?(Bluevia::AdResponse), true
46
+
47
+ response.each{|item|
48
+ %w[value type_name interaction type_id].each{|key|
49
+ assert_equal true, item.has_key?(key)
50
+ }
51
+ }
52
+
53
+ assert_equal response.image.instance_of?(Hash), true
54
+
55
+ assert_equal response.text.instance_of?(Hash), true
56
+
57
+ end
58
+
59
+ def get_ad_fails
60
+ params = {:user_agent => "Mozilla 5.0",
61
+ :ad_request_id => "a1x4zasg58w"
62
+ }
63
+ assert_raise Bluevia::ClientError do
64
+ @service.request(params)
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,77 @@
1
+ #
2
+ # BlueVia is a global iniciative of Telefonica delivered by Movistar and O2.
3
+ # Please, check out www.bluevia.com and if you need more information
4
+ # contact us at mailto:support@bluevia.com
5
+
6
+ module TestConfig
7
+
8
+ # Configuration for sandbox endpoint
9
+ module SandBox
10
+
11
+ # App Credentials
12
+ CONSUMER_KEY = "rtWB11108FG"
13
+ CONSUMER_SECRET = "1291943612105"
14
+
15
+ # User Credentials
16
+ TOKEN = "963139c903e26941d6801ce7702fed0a"
17
+ TOKEN_SECRET = "78a375c0a4b7c876a5f8160e919fb1cb"
18
+
19
+ # SMS MO
20
+ SMS_REGISTRATION_ID = "5210666"
21
+ SMS_SPECIAL_NUMBER = "5721100001"
22
+ SMS_SPECIAL_KEYWORD = "OTAFSMSSB"
23
+
24
+ # SYNC MESSAGING
25
+ SYNC_REGISTRATION_ID= "5210666"
26
+ SYNC_SPECIAL_NUMBER = "5721100001"
27
+ SYNC_SPECIAL_KEYWORD= "OTAFSYNCSB"
28
+
29
+ BASEURI = "https://api.bluevia.com"
30
+
31
+ AUTHORIZE_URI = "http://connect.bluevia.com/authorise/"
32
+ end
33
+
34
+ # Configuration for commercial endpoint
35
+ module Commercial
36
+
37
+ CONSUMER_KEY = "AnjI10920Xk"
38
+ CONSUMER_SECRET = "1290440360972"
39
+ TOKEN = "7807453c8c11a6d9cc90581de97642c5"
40
+ TOKEN_SECRET = "34a2a42c942cea85bc9e23a903f9624b"
41
+
42
+ BASEURI = "https://api.bluevia.com"
43
+
44
+ AUTHORIZE_URI = "http://connect.bluevia.com/authorise/"
45
+ end
46
+
47
+ def create_client(commercial = false, service = nil)
48
+ if commercial
49
+ @bc = Bluevia::BlueviaClient.new(
50
+ { :consumer_key => TestConfig::Commercial::CONSUMER_KEY,
51
+ :consumer_secret=> TestConfig::Commercial::CONSUMER_SECRET,
52
+ :token => TestConfig::Commercial::TOKEN,
53
+ :token_secret => TestConfig::Commercial::TOKEN_SECRET,
54
+ :uri => TestConfig::Commercial::BASEURI
55
+ })
56
+ @bc.set_commercial
57
+ else
58
+ @bc = Bluevia::BlueviaClient.new(
59
+ { :consumer_key => TestConfig::SandBox::CONSUMER_KEY,
60
+ :consumer_secret=> TestConfig::SandBox::CONSUMER_SECRET,
61
+ :token => TestConfig::SandBox::TOKEN,
62
+ :token_secret => TestConfig::SandBox::TOKEN_SECRET,
63
+ :uri => TestConfig::SandBox::BASEURI
64
+ })
65
+ end
66
+
67
+ @bc.log_level = Logger::DEBUG
68
+
69
+ unless service.nil?
70
+ @service = @bc.get_service(service)
71
+ end
72
+ end
73
+
74
+ def get_correlator_id
75
+ (0...10).map{ ('a'..'z').to_a[rand(26)] }.join
76
+ end
77
+ end
@@ -0,0 +1,124 @@
1
+ #
2
+ # BlueVia is a global iniciative of Telefonica delivered by Movistar and O2.
3
+ # Please, check out www.bluevia.com and if you need more information
4
+ # contact us at mailto:support@bluevia.com
5
+
6
+ $:.unshift File.join(File.dirname(__FILE__),'..','lib')
7
+
8
+ require 'test/unit'
9
+ require 'bluevia'
10
+ require 'test_config'
11
+
12
+ #
13
+ # (c) Bluevia (mailto:support@bluevia.com)
14
+ #
15
+
16
+ class TestDirectory < Test::Unit::TestCase
17
+ include Bluevia
18
+ include TestConfig
19
+ def setup
20
+ create_client(false, :Directory)
21
+ end
22
+
23
+ def test_get_terminal_info
24
+ get_terminal_info(TestConfig::SandBox::TOKEN)
25
+ end
26
+
27
+ def test_get_terminal_info_commercial
28
+ create_client(true, :Directory)
29
+ get_terminal_info(TestConfig::Commercial::TOKEN)
30
+ end
31
+
32
+ def test_get_access_info
33
+ get_access_info(TestConfig::SandBox::TOKEN)
34
+ end
35
+
36
+ def test_get_access_info_commercial
37
+ create_client(true, :Directory)
38
+ get_access_info(TestConfig::Commercial::TOKEN)
39
+ end
40
+
41
+ def test_get_profile
42
+ get_profile(TestConfig::SandBox::TOKEN)
43
+ end
44
+
45
+ def test_get_profile_commercial
46
+ create_client(true, :Directory)
47
+ get_profile(TestConfig::Commercial::TOKEN)
48
+ end
49
+
50
+ def test_get_two_values
51
+ get_profile_access_info(TestConfig::SandBox::TOKEN)
52
+ end
53
+
54
+ def test_get_two_values_commercial
55
+ create_client(true, :Directory)
56
+ get_profile_access_info(TestConfig::Commercial::TOKEN)
57
+ end
58
+
59
+ def test_get_all_info
60
+ get_all_info(TestConfig::SandBox::TOKEN)
61
+ end
62
+
63
+ def test_get_all_info_commercial
64
+ create_client(true, :Directory)
65
+ get_all_info(TestConfig::Commercial::TOKEN)
66
+ end
67
+
68
+ private
69
+
70
+ def get_terminal_info(acess_token)
71
+ response = @service.get_user_info(acess_token, Directory::USER_TERMINAL_INFO)
72
+ assert_equal response.size, 1
73
+ assert_equal response.include?("userTerminalInfo"), true
74
+ assert_equal response["userTerminalInfo"].size >= 1, true
75
+ assert_equal response["userTerminalInfo"].include?("version"), true
76
+ end
77
+
78
+ def get_access_info(acess_token)
79
+ response = @service.get_user_info(acess_token, Directory::USER_ACCESS_INFO)
80
+ assert_equal response.size, 1
81
+ assert_equal response.include?("userAccessInfo"), true
82
+ assert_equal response["userAccessInfo"].size >= 1, true
83
+ %W[apn].each { |key|
84
+ assert_equal response["userAccessInfo"].include?(key), true
85
+ }
86
+ end
87
+
88
+ def get_profile(acess_token)
89
+ response = @service.get_user_info(acess_token, Directory::USER_PROFILE)
90
+ assert_equal response.size, 1
91
+ assert_equal response.include?("userProfile"), true
92
+ %W[userType icb ocb parentalControl operatorId segment].each { |key|
93
+ assert_equal response["userProfile"].include?(key), true
94
+ }
95
+ end
96
+
97
+ def get_profile_access_info(acess_token)
98
+ response = @service.get_user_info(acess_token, [Directory::USER_ACCESS_INFO, Directory::USER_PROFILE])
99
+
100
+ assert_equal response.size >= 1
101
+
102
+ %w[userAccessInfo].each{|key|
103
+ assert_equal true, response.has_key?(key)
104
+ }
105
+
106
+ %W[apn].each { |key|
107
+ assert_equal response["userAccessInfo"].include?(key), true
108
+ }
109
+ end
110
+
111
+ def get_all_info(acess_token)
112
+ response = @service.get_user_info(acess_token)
113
+ assert_equal response.size, 1
114
+ assert_equal response.include?("userInfo"), true
115
+ assert_equal response["userInfo"].size >= 2
116
+
117
+ [ "userAccessInfo",
118
+ "userProfile"].each {
119
+ |key|
120
+ assert_equal response["userInfo"].include?(key), true
121
+ }
122
+ end
123
+
124
+ end
@@ -0,0 +1,72 @@
1
+ #
2
+ # BlueVia is a global iniciative of Telefonica delivered by Movistar and O2.
3
+ # Please, check out www.bluevia.com and if you need more information
4
+ # contact us at mailto:support@bluevia.com
5
+
6
+ $:.unshift File.join(File.dirname(__FILE__),'..','lib')
7
+
8
+ require 'test/unit'
9
+ require 'bluevia'
10
+ require 'test_config'
11
+
12
+ #
13
+ # (c) Bluevia (mailto:support@bluevia.com)
14
+ #
15
+
16
+ class TestOauth < Test::Unit::TestCase
17
+ include TestConfig
18
+ def setup
19
+ create_client(false, :oAuth)
20
+ end
21
+
22
+ def test_get_request_token_callback
23
+ token, secret, url = @service.get_request_token({:callback =>"http://foo.bar"})
24
+ p url
25
+ assert_not_nil token
26
+ assert_not_nil secret
27
+ assert_not_nil url
28
+ end
29
+
30
+ def test_get_request_token_callback_uri
31
+ token, secret, url = @service.get_request_token({:callback =>"http://foo.bar", :uri => TestConfig::SandBox::AUTHORIZE_URI})
32
+ p url
33
+ assert_not_nil token
34
+ assert_not_nil secret
35
+ assert_not_nil url
36
+ end
37
+
38
+ def test_get_request_token_nickname
39
+ token, secret, url = @service.get_request_token({:nickname =>"juansdp7"})
40
+ p token
41
+ p secret
42
+ p url
43
+ assert_not_nil token
44
+ assert_not_nil secret
45
+ assert_not_nil url
46
+ end
47
+
48
+ def ftest_get_request_token_invalid
49
+ assert_raise SyntaxError do
50
+ @service.get_request_token({:nicknam =>"juandebravo"})
51
+ end
52
+ end
53
+
54
+ def ftest_get_request_token_commercial
55
+ create_client(true, :oAuth)
56
+ token, secret, url = @service.get_request_token("http://foo.bar")
57
+ p token
58
+ p secret
59
+ p url
60
+ end
61
+
62
+ def ftest_get_access_token
63
+ create_client(true, :oAuth)
64
+
65
+ token = "20100728102227000020"
66
+ secret = "f8e12e97c4ee785bab418ed0f68df623"
67
+
68
+ result1, result2 = @service.get_access_token(token, secret, "529fa27d6bbb8565add26600137294b7")
69
+ p result1
70
+ p result2
71
+ end
72
+ end
data/test/test_sms.rb ADDED
@@ -0,0 +1,112 @@
1
+ #
2
+ # BlueVia is a global iniciative of Telefonica delivered by Movistar and O2.
3
+ # Please, check out www.bluevia.com and if you need more information
4
+ # contact us at mailto:support@bluevia.com
5
+
6
+ $:.unshift File.join(File.dirname(__FILE__),'..','lib')
7
+
8
+ require 'test/unit'
9
+ require 'bluevia'
10
+ require 'bluevia/errors'
11
+ require 'test_config'
12
+
13
+ #
14
+ # (c) Bluevia (mailto:support@bluevia.com)
15
+ #
16
+
17
+ class TestSms < Test::Unit::TestCase
18
+ include TestConfig
19
+ include Bluevia
20
+
21
+ URL_DELIVERY_NOTIFICATION = "http://foo.bar"
22
+
23
+ def setup
24
+ create_client(false, :Sms)
25
+ end
26
+
27
+ def test_send_sms
28
+ send_sms(TestConfig::SandBox::TOKEN)
29
+ end
30
+
31
+ def test_send_sms_commercial
32
+ create_client(true, :Sms)
33
+ send_sms(TestConfig::Commercial::TOKEN)
34
+ end
35
+
36
+ def test_get_delivery_status
37
+ get_delivery_status(TestConfig::SandBox::TOKEN)
38
+ end
39
+
40
+ def test_get_delivery_status_commercial
41
+ create_client(true, :Sms)
42
+ get_delivery_status(TestConfig::Commercial::TOKEN)
43
+ end
44
+
45
+ def test_get_delivery_status_commercial_identifier
46
+ create_client(true, :Sms)
47
+ get_delivery_status(TestConfig::Commercial::TOKEN, "10001112090452109328")
48
+ end
49
+
50
+ def ftest_get_received_sms
51
+ get_received_sms
52
+ end
53
+
54
+ def ftest_get_received_sms_fails
55
+ get_received_sms_fails
56
+ end
57
+
58
+ def ftest_get_received_sms_commercial
59
+ create_client(true, :Sms)
60
+ get_received_sms(true)
61
+ end
62
+
63
+ def ftest_get_received_sms_commercial_fails
64
+ create_client(true, :Sms)
65
+ get_received_sms_fails
66
+ end
67
+
68
+ private
69
+
70
+ def get_correlator_id
71
+ (0...10).map{ ('a'..'z').to_a[rand(26)] }.join
72
+ end
73
+
74
+ def send_sms(origin)
75
+ info = @service.send_sms(["11111", "33333"], origin, "Yet another SMS Text")
76
+ assert_not_nil info
77
+ assert_match(/^.*(deliverystatus)$/, info)
78
+ info
79
+ end
80
+
81
+ def get_received_sms(commercial = false)
82
+ if commercial
83
+ registration_id = "4353432" # TODO: change this number
84
+ else
85
+ registration_id = "35234264"
86
+ end
87
+ info = @service.get_received_sms(registration_id)
88
+ assert_equal info.include?("receivedSMS"), true
89
+ p info
90
+ end
91
+
92
+ def get_received_sms_fails
93
+ assert_raise RuntimeError do
94
+ @service.get_received_sms("352342641")
95
+ end
96
+ end
97
+
98
+ def get_delivery_status(origin, identifier = nil)
99
+ if identifier.nil?
100
+ info = send_sms(origin)
101
+ size = 2
102
+ identifier = info.split("/").last(2).first
103
+ else
104
+ size = 1
105
+ end
106
+ info = @service.get_delivery_status(identifier)
107
+ assert_equal info["smsDeliveryStatus"].size, size
108
+ assert_equal info["smsDeliveryStatus"][0].include?("address"), true
109
+ assert_equal info["smsDeliveryStatus"][0].include?("deliveryStatus"), true
110
+ end
111
+
112
+ end