bstack_wrapper 0.0.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.
- data/lib/bstack_wrapper.rb +4 -0
- data/lib/user_account.rb +87 -0
- metadata +84 -0
data/lib/user_account.rb
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
class UserAccount
|
2
|
+
attr_accessor :username, :access_key
|
3
|
+
|
4
|
+
def initialize username, access_key
|
5
|
+
if validate_params username, access_key
|
6
|
+
@username = username
|
7
|
+
@access_key = access_key
|
8
|
+
else
|
9
|
+
raise Exception, "Invalid username/accesskey"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
def get_browsers options
|
15
|
+
uri = "http://api.browserstack.com/3/browsers?"
|
16
|
+
uri = uri + "flat=true" if options[:flat]
|
17
|
+
uri = uri + "all=true" if options[:all]
|
18
|
+
response = get_from_browser_stack uri
|
19
|
+
return JSON.parse(response.body)
|
20
|
+
end
|
21
|
+
|
22
|
+
def create_worker options
|
23
|
+
require_params = %w(os os_version browser device browser_version timeout url name)
|
24
|
+
optional_params = %w(build project)
|
25
|
+
options.reject! { |o| !require_params.include?(o) && !optional_params.include?(o) }
|
26
|
+
require_params.each { |param| raise Exception, "Parameter #{param} is required." if !options.include?(param) }
|
27
|
+
uri = "http://api.browserstack.com/3/worker"
|
28
|
+
response= post_at_browser_stack(uri, options)
|
29
|
+
return JSON.parse(response.body)
|
30
|
+
end
|
31
|
+
|
32
|
+
def get_worker_screen_shot options
|
33
|
+
require_params =%w(format worker_id)
|
34
|
+
optional_params = %w()
|
35
|
+
options.reject! { |o| !require_params.include?(o) && !optional_params.include?(o) }
|
36
|
+
require_params.each { |param| raise Exception, "Parameter #{param} is required." if !options.include?(param) }
|
37
|
+
uri = "http://api.browserstack.com/3/worker/#{options["worker_id"]}/screenshot.#{options["format"]}"
|
38
|
+
response = get_from_browser_stack uri
|
39
|
+
return JSON.parse(response.body)
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
def get_worker_status options
|
44
|
+
required_params = %w(worker_id)
|
45
|
+
options_params = []
|
46
|
+
options.reject! { |o| !require_params.include?(o) && !optional_params.include?(o) }
|
47
|
+
require_params.each { |param| raise Exception, "Parameter #{param} is required." if !options.include?(param) }
|
48
|
+
uri = "http://api.browserstack.com/3/worker#{options["worker_id"]}"
|
49
|
+
response = get_from_browser_stack uri
|
50
|
+
return JSON.parse(response.body)
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
private
|
55
|
+
def post_at_browser_stack uri, options
|
56
|
+
# puts options
|
57
|
+
# options = {"timeout"=>300, "name"=>"ship", "url"=>"shipdroid.com", "os"=>"OS X", "device"=>nil, "browser"=>"safari", "browser_version"=>"7.0", "os_version"=>"Mavericks"}
|
58
|
+
# uri = "http://api.browserstack.com/3/worker"
|
59
|
+
uri = URI.parse(uri)
|
60
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
61
|
+
request = Net::HTTP::Post.new(uri.request_uri)
|
62
|
+
request.basic_auth(self.username, self.access_key)
|
63
|
+
request.set_form_data(options)
|
64
|
+
response = http.request(request)
|
65
|
+
return response
|
66
|
+
end
|
67
|
+
|
68
|
+
def get_from_browser_stack uri
|
69
|
+
uri = URI.parse(uri)
|
70
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
71
|
+
request = Net::HTTP::Get.new(uri.request_uri)
|
72
|
+
request.basic_auth(self.username, self.access_key)
|
73
|
+
response = http.request(request)
|
74
|
+
return response
|
75
|
+
end
|
76
|
+
|
77
|
+
def validate_params username, access_key
|
78
|
+
uri = "http://api.browserstack.com/3"
|
79
|
+
uri = URI.parse(uri)
|
80
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
81
|
+
request = Net::HTTP::Get.new(uri.request_uri)
|
82
|
+
request.basic_auth(username, access_key)
|
83
|
+
response = http.request(request)
|
84
|
+
return (response.code != '200') ? false : true
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
metadata
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: bstack_wrapper
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 31
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 0
|
10
|
+
version: 0.0.0
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Mandy
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2014-08-14 00:00:00 +05:30
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name:
|
23
|
+
- json
|
24
|
+
- open-uri
|
25
|
+
- net-http
|
26
|
+
prerelease: false
|
27
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
hash: 3
|
33
|
+
segments:
|
34
|
+
- 0
|
35
|
+
version: "0"
|
36
|
+
type: :runtime
|
37
|
+
version_requirements: *id001
|
38
|
+
description: Browser stack wrapper!
|
39
|
+
email:
|
40
|
+
executables: []
|
41
|
+
|
42
|
+
extensions: []
|
43
|
+
|
44
|
+
extra_rdoc_files: []
|
45
|
+
|
46
|
+
files:
|
47
|
+
- lib/bstack_wrapper.rb
|
48
|
+
- lib/user_account.rb
|
49
|
+
has_rdoc: true
|
50
|
+
homepage:
|
51
|
+
licenses: []
|
52
|
+
|
53
|
+
post_install_message:
|
54
|
+
rdoc_options: []
|
55
|
+
|
56
|
+
require_paths:
|
57
|
+
- lib
|
58
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
59
|
+
none: false
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
hash: 3
|
64
|
+
segments:
|
65
|
+
- 0
|
66
|
+
version: "0"
|
67
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
69
|
+
requirements:
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
hash: 3
|
73
|
+
segments:
|
74
|
+
- 0
|
75
|
+
version: "0"
|
76
|
+
requirements: []
|
77
|
+
|
78
|
+
rubyforge_project:
|
79
|
+
rubygems_version: 1.3.7
|
80
|
+
signing_key:
|
81
|
+
specification_version: 3
|
82
|
+
summary: Browser stack wrapper!
|
83
|
+
test_files: []
|
84
|
+
|