roku_builder 3.3.3 → 3.3.4
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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rubocop.yml +1158 -0
- data/.travis.yml +3 -0
- data/Gemfile.lock +19 -14
- data/README.md +5 -0
- data/bin/roku +32 -37
- data/config.json.example +2 -2
- data/lib/roku_builder/config_manager.rb +83 -118
- data/lib/roku_builder/config_parser.rb +192 -0
- data/lib/roku_builder/config_validator.rb +125 -0
- data/lib/roku_builder/controller.rb +97 -484
- data/lib/roku_builder/controller_commands.rb +112 -0
- data/lib/roku_builder/error_handler.rb +116 -0
- data/lib/roku_builder/inspector.rb +5 -18
- data/lib/roku_builder/keyer.rb +3 -11
- data/lib/roku_builder/linker.rb +3 -15
- data/lib/roku_builder/loader.rb +52 -89
- data/lib/roku_builder/manifest_manager.rb +2 -3
- data/lib/roku_builder/monitor.rb +15 -12
- data/lib/roku_builder/navigator.rb +2 -10
- data/lib/roku_builder/packager.rb +1 -7
- data/lib/roku_builder/tester.rb +1 -0
- data/lib/roku_builder/util.rb +39 -0
- data/lib/roku_builder/version.rb +1 -1
- data/lib/roku_builder.rb +96 -1
- data/roku_builder.gemspec +5 -4
- data/tests/roku_builder/config_manager_test.rb +80 -241
- data/tests/roku_builder/{controller_config_test.rb → config_parser_test.rb} +5 -5
- data/tests/roku_builder/config_validator_test.rb +158 -0
- data/tests/roku_builder/controller_commands_test.rb +304 -0
- data/tests/roku_builder/controller_test.rb +61 -620
- data/tests/roku_builder/error_handler_test.rb +76 -0
- data/tests/roku_builder/inspector_test.rb +3 -0
- data/tests/roku_builder/keyer_test.rb +3 -2
- data/tests/roku_builder/linker_test.rb +2 -1
- data/tests/roku_builder/loader_test.rb +2 -0
- data/tests/roku_builder/manifest_manager_test.rb +3 -6
- data/tests/roku_builder/monitor_test.rb +5 -13
- data/tests/roku_builder/navigator_test.rb +2 -0
- data/tests/roku_builder/test_helper.rb +38 -0
- metadata +34 -11
data/lib/roku_builder/tester.rb
CHANGED
data/lib/roku_builder/util.rb
CHANGED
|
@@ -27,5 +27,44 @@ module RokuBuilder
|
|
|
27
27
|
def init
|
|
28
28
|
#Override in subclass
|
|
29
29
|
end
|
|
30
|
+
|
|
31
|
+
# Generates a simpe Faraday connection with digest credentials
|
|
32
|
+
# @return [Faraday] The faraday connection
|
|
33
|
+
def simple_connection
|
|
34
|
+
Faraday.new(url: @url) do |f|
|
|
35
|
+
f.request :digest, @dev_username, @dev_password
|
|
36
|
+
f.adapter Faraday.default_adapter
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Generates a multipart Faraday connection with digest credentials
|
|
41
|
+
# @param port [Integer] optional port to connect to
|
|
42
|
+
# @return [Faraday] The faraday connection
|
|
43
|
+
def multipart_connection(port: nil)
|
|
44
|
+
url = @url
|
|
45
|
+
url = "#{url}:#{port}" if port
|
|
46
|
+
Faraday.new(url: url) do |f|
|
|
47
|
+
f.headers['Content-Type'] = Faraday::Request::Multipart.mime_type
|
|
48
|
+
f.request :digest, @dev_username, @dev_password
|
|
49
|
+
f.request :multipart
|
|
50
|
+
f.request :url_encoded
|
|
51
|
+
f.adapter Faraday.default_adapter
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Parses a string into and options hash
|
|
56
|
+
# @param options [String] string of options in the format "a:b, c:d"
|
|
57
|
+
# @return [Hash] Options hash generated
|
|
58
|
+
def self.options_parse(options:)
|
|
59
|
+
parsed = {}
|
|
60
|
+
opts = options.split(/,\s*/)
|
|
61
|
+
opts.each do |opt|
|
|
62
|
+
opt = opt.split(":")
|
|
63
|
+
key = opt.shift.to_sym
|
|
64
|
+
value = opt.join(":")
|
|
65
|
+
parsed[key] = value
|
|
66
|
+
end
|
|
67
|
+
parsed
|
|
68
|
+
end
|
|
30
69
|
end
|
|
31
70
|
end
|
data/lib/roku_builder/version.rb
CHANGED
data/lib/roku_builder.rb
CHANGED
|
@@ -13,6 +13,7 @@ require "git"
|
|
|
13
13
|
require 'json'
|
|
14
14
|
|
|
15
15
|
require "roku_builder/controller"
|
|
16
|
+
require "roku_builder/controller_commands"
|
|
16
17
|
require "roku_builder/util"
|
|
17
18
|
require "roku_builder/keyer"
|
|
18
19
|
require "roku_builder/inspector"
|
|
@@ -22,11 +23,105 @@ require "roku_builder/linker"
|
|
|
22
23
|
require "roku_builder/tester"
|
|
23
24
|
require "roku_builder/manifest_manager"
|
|
24
25
|
require "roku_builder/config_manager"
|
|
26
|
+
require "roku_builder/config_validator"
|
|
27
|
+
require "roku_builder/config_parser"
|
|
28
|
+
require "roku_builder/error_handler"
|
|
25
29
|
require "roku_builder/navigator"
|
|
26
30
|
require "roku_builder/monitor"
|
|
27
31
|
require "roku_builder/version"
|
|
28
32
|
|
|
29
33
|
# Wrapping module for the Roku Builder Gem
|
|
30
34
|
module RokuBuilder
|
|
31
|
-
|
|
35
|
+
|
|
36
|
+
### Global Codes ###
|
|
37
|
+
|
|
38
|
+
# Success
|
|
39
|
+
SUCCESS = 0
|
|
40
|
+
|
|
41
|
+
### Validation Codes ###
|
|
42
|
+
|
|
43
|
+
# Valid Options
|
|
44
|
+
VALID = 0
|
|
45
|
+
|
|
46
|
+
# Too many commands given
|
|
47
|
+
EXTRA_COMMANDS = 1
|
|
48
|
+
|
|
49
|
+
# No commands given
|
|
50
|
+
NO_COMMANDS = 2
|
|
51
|
+
|
|
52
|
+
# Too many source options given
|
|
53
|
+
EXTRA_SOURCES = 3
|
|
54
|
+
|
|
55
|
+
# No source options given
|
|
56
|
+
NO_SOURCE = 4
|
|
57
|
+
|
|
58
|
+
# Incorrect use of current option
|
|
59
|
+
BAD_CURRENT = 5
|
|
60
|
+
|
|
61
|
+
# No deeplink options supplied for deeplink
|
|
62
|
+
BAD_DEEPLINK = 6
|
|
63
|
+
|
|
64
|
+
# Incorrect use of the in option
|
|
65
|
+
BAD_IN_FILE = 7
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
### Device Codes ###
|
|
70
|
+
|
|
71
|
+
# The default device is offline switched to a secondary device
|
|
72
|
+
CHANGED_DEVICE = -1
|
|
73
|
+
|
|
74
|
+
# Device is online
|
|
75
|
+
GOOD_DEVICE = 0
|
|
76
|
+
|
|
77
|
+
# User defined device was not online
|
|
78
|
+
BAD_DEVICE = 1
|
|
79
|
+
|
|
80
|
+
# No configured devices were online
|
|
81
|
+
NO_DEVICES = 2
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
### Execute Codes ###
|
|
85
|
+
|
|
86
|
+
# Config has deplicated options
|
|
87
|
+
DEPRICATED_CONFIG = -1
|
|
88
|
+
|
|
89
|
+
# Tring to overwrite existing config file
|
|
90
|
+
CONFIG_OVERWRITE = 1
|
|
91
|
+
|
|
92
|
+
# Missing config file
|
|
93
|
+
MISSING_CONFIG = 2
|
|
94
|
+
|
|
95
|
+
# Invalid config file
|
|
96
|
+
INVALID_CONFIG = 3
|
|
97
|
+
|
|
98
|
+
# Missing manifest file
|
|
99
|
+
MISSING_MANIFEST = 4
|
|
100
|
+
|
|
101
|
+
# Unknow device given
|
|
102
|
+
UNKNOWN_DEVICE = 5
|
|
103
|
+
|
|
104
|
+
# Unknown project given
|
|
105
|
+
UNKNOWN_PROJECT = 6
|
|
106
|
+
|
|
107
|
+
# Unknown stage given
|
|
108
|
+
UNKNOWN_STAGE = 7
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
### Execute Codes ###
|
|
112
|
+
|
|
113
|
+
# Failed to sideload app
|
|
114
|
+
FAILED_SIDELOAD = 8
|
|
115
|
+
|
|
116
|
+
# Failed to sign app
|
|
117
|
+
FAILED_SIGNING = 9
|
|
118
|
+
|
|
119
|
+
# Failed to deeplink to app
|
|
120
|
+
FAILED_DEEPLINKING = 10
|
|
121
|
+
|
|
122
|
+
# Failed to send navigation command
|
|
123
|
+
FAILED_NAVIGATING = 11
|
|
124
|
+
|
|
125
|
+
# Failed to capture screen
|
|
126
|
+
FAILED_SCREENCAPTURE = 12
|
|
32
127
|
end
|
data/roku_builder.gemspec
CHANGED
|
@@ -20,19 +20,20 @@ Gem::Specification.new do |spec|
|
|
|
20
20
|
|
|
21
21
|
spec.required_ruby_version = "~> 2.2"
|
|
22
22
|
|
|
23
|
-
spec.add_dependency "rubyzip", "~> 1.
|
|
23
|
+
spec.add_dependency "rubyzip", "~> 1.2"
|
|
24
24
|
spec.add_dependency "faraday", "~> 0.9"
|
|
25
25
|
spec.add_dependency "faraday-digestauth", "~> 0.2"
|
|
26
|
-
spec.add_dependency "git", "~> 1.
|
|
26
|
+
spec.add_dependency "git", "~> 1.3"
|
|
27
27
|
spec.add_dependency "net-ping", "~> 1.7"
|
|
28
28
|
|
|
29
29
|
spec.add_development_dependency "bundler", "~> 1.7"
|
|
30
|
-
spec.add_development_dependency "rake", "~>
|
|
31
|
-
spec.add_development_dependency "byebug", "~>
|
|
30
|
+
spec.add_development_dependency "rake", "~> 11.1"
|
|
31
|
+
spec.add_development_dependency "byebug", "~> 8.2"
|
|
32
32
|
spec.add_development_dependency "minitest", "~> 5.8"
|
|
33
33
|
spec.add_development_dependency "minitest-autotest", "~> 1.0"
|
|
34
34
|
spec.add_development_dependency "minitest-server", "~> 1.0"
|
|
35
35
|
spec.add_development_dependency "simplecov", "~> 0.11"
|
|
36
|
+
spec.add_development_dependency "coveralls", "~> 0.8"
|
|
36
37
|
spec.add_development_dependency "yard", "~> 0.8.7"
|
|
37
38
|
spec.add_development_dependency "guard-livereload", "~> 2.5"
|
|
38
39
|
end
|
|
@@ -16,6 +16,71 @@ class ConfigManagerTest < Minitest::Test
|
|
|
16
16
|
assert_equal :project1, config[:projects][:default], :project1
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
+
def test_config_manger_load_config
|
|
20
|
+
logger = Logger.new("/dev/null")
|
|
21
|
+
target_config = File.join(File.dirname(__FILE__), "test_files", "controller_test", "configure_test.json")
|
|
22
|
+
File.delete(target_config) if File.exist?(target_config)
|
|
23
|
+
|
|
24
|
+
code = nil
|
|
25
|
+
config = nil
|
|
26
|
+
configs = nil
|
|
27
|
+
# Test Missing Config
|
|
28
|
+
options = {validate: true, config: target_config}
|
|
29
|
+
code = RokuBuilder::ConfigManager.load_config(options: options, logger: logger)
|
|
30
|
+
assert_equal RokuBuilder::MISSING_CONFIG, code
|
|
31
|
+
|
|
32
|
+
FileUtils.cp(File.join(File.dirname(target_config), "valid_config.json"), target_config)
|
|
33
|
+
|
|
34
|
+
# Test Invalid config json
|
|
35
|
+
options = {validate: true, config: target_config}
|
|
36
|
+
RokuBuilder::ConfigManager.stub(:get_config, nil) do
|
|
37
|
+
code = RokuBuilder::ConfigManager.load_config(options: options, logger: logger)
|
|
38
|
+
end
|
|
39
|
+
assert_equal RokuBuilder::INVALID_CONFIG, code
|
|
40
|
+
assert_nil config
|
|
41
|
+
assert_nil configs
|
|
42
|
+
|
|
43
|
+
# Test Invalid config
|
|
44
|
+
options = {validate: true, config: target_config}
|
|
45
|
+
RokuBuilder::ConfigValidator.stub(:validate_config, [1]) do
|
|
46
|
+
code, config, configs = RokuBuilder::ConfigManager.load_config(options: options, logger: logger)
|
|
47
|
+
end
|
|
48
|
+
assert_equal RokuBuilder::INVALID_CONFIG, code
|
|
49
|
+
assert_nil config
|
|
50
|
+
assert_nil configs
|
|
51
|
+
|
|
52
|
+
# Test Depricated Config
|
|
53
|
+
options = {validate: true, stage: 'production', config: target_config}
|
|
54
|
+
RokuBuilder::ConfigValidator.stub(:validate_config, [-1]) do
|
|
55
|
+
code, config, configs = RokuBuilder::ConfigManager.load_config(options: options, logger: logger)
|
|
56
|
+
end
|
|
57
|
+
assert_equal RokuBuilder::DEPRICATED_CONFIG, code
|
|
58
|
+
assert_equal Hash, config.class
|
|
59
|
+
assert_equal Hash, configs.class
|
|
60
|
+
|
|
61
|
+
# Test valid Config
|
|
62
|
+
options = {validate: true, stage: 'production', config: target_config}
|
|
63
|
+
RokuBuilder::ConfigValidator.stub(:validate_config, [0]) do
|
|
64
|
+
code, config, configs = RokuBuilder::ConfigManager.load_config(options: options, logger: logger)
|
|
65
|
+
end
|
|
66
|
+
assert_equal RokuBuilder::SUCCESS, code
|
|
67
|
+
assert_equal Hash, config.class
|
|
68
|
+
assert_equal Hash, configs.class
|
|
69
|
+
|
|
70
|
+
# Test valid config in pwd
|
|
71
|
+
options = {validate: true, stage: 'production', config: target_config}
|
|
72
|
+
RokuBuilder::ConfigValidator.stub(:validate_config, [0]) do
|
|
73
|
+
RokuBuilder::Controller.stub(:system, "/dev/null/test") do
|
|
74
|
+
code, config, configs = RokuBuilder::ConfigManager.load_config(options: options, logger: logger)
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
assert_equal RokuBuilder::SUCCESS, code
|
|
78
|
+
assert_equal Hash, config.class
|
|
79
|
+
assert_equal Hash, configs.class
|
|
80
|
+
|
|
81
|
+
File.delete(target_config) if File.exist?(target_config)
|
|
82
|
+
end
|
|
83
|
+
|
|
19
84
|
def test_config_manager_read_invalid_config
|
|
20
85
|
logger = Logger.new("/dev/null")
|
|
21
86
|
config_path = "config/file/path"
|
|
@@ -29,191 +94,14 @@ class ConfigManagerTest < Minitest::Test
|
|
|
29
94
|
assert_nil config
|
|
30
95
|
end
|
|
31
96
|
|
|
32
|
-
def test_config_manager_validate_devices
|
|
33
|
-
logger = Logger.new("/dev/null")
|
|
34
|
-
config = good_config
|
|
35
|
-
config[:devices] = nil
|
|
36
|
-
codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
|
|
37
|
-
assert_equal [1], codes
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def test_config_manager_validate_devices_default
|
|
41
|
-
logger = Logger.new("/dev/null")
|
|
42
|
-
config = good_config
|
|
43
|
-
config[:devices][:default] = nil
|
|
44
|
-
codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
|
|
45
|
-
assert_equal [2], codes
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def test_config_manager_validate_devices_default_is_symbol
|
|
49
|
-
logger = Logger.new("/dev/null")
|
|
50
|
-
config = good_config
|
|
51
|
-
config[:devices][:default] = "bad"
|
|
52
|
-
codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
|
|
53
|
-
assert_equal [3], codes
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
def test_config_manager_validate_device_ip
|
|
57
|
-
logger = Logger.new("/dev/null")
|
|
58
|
-
config = good_config
|
|
59
|
-
config[:devices][:roku][:ip] = nil
|
|
60
|
-
codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
|
|
61
|
-
assert_equal [7], codes
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
def test_config_manager_validate_device_ip_empty
|
|
65
|
-
logger = Logger.new("/dev/null")
|
|
66
|
-
config = good_config
|
|
67
|
-
config[:devices][:roku][:ip] = ""
|
|
68
|
-
codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
|
|
69
|
-
assert_equal [7], codes
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
def test_config_manager_validate_device_ip_default_value
|
|
73
|
-
logger = Logger.new("/dev/null")
|
|
74
|
-
config = good_config
|
|
75
|
-
config[:devices][:roku][:ip] = "xxx.xxx.xxx.xxx"
|
|
76
|
-
codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
|
|
77
|
-
assert_equal [7], codes
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
def test_config_manager_validate_device_user
|
|
81
|
-
logger = Logger.new("/dev/null")
|
|
82
|
-
config = good_config
|
|
83
|
-
config[:devices][:roku][:user] = nil
|
|
84
|
-
codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
|
|
85
|
-
assert_equal [8], codes
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
def test_config_manager_validate_device_user_empty
|
|
89
|
-
logger = Logger.new("/dev/null")
|
|
90
|
-
config = good_config
|
|
91
|
-
config[:devices][:roku][:user] = ""
|
|
92
|
-
codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
|
|
93
|
-
assert_equal [8], codes
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
def test_config_manager_validate_device_user_default_value
|
|
97
|
-
logger = Logger.new("/dev/null")
|
|
98
|
-
config = good_config
|
|
99
|
-
config[:devices][:roku][:user] = "<username>"
|
|
100
|
-
codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
|
|
101
|
-
assert_equal [8], codes
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
def test_config_manager_validate_device_password
|
|
105
|
-
logger = Logger.new("/dev/null")
|
|
106
|
-
config = good_config
|
|
107
|
-
config[:devices][:roku][:password] = nil
|
|
108
|
-
codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
|
|
109
|
-
assert_equal [9], codes
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
def test_config_manager_validate_device_password_empty
|
|
113
|
-
logger = Logger.new("/dev/null")
|
|
114
|
-
config = good_config
|
|
115
|
-
config[:devices][:roku][:password] = ""
|
|
116
|
-
codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
|
|
117
|
-
assert_equal [9], codes
|
|
118
|
-
end
|
|
119
|
-
|
|
120
|
-
def test_config_manager_validate_device_password_default_value
|
|
121
|
-
logger = Logger.new("/dev/null")
|
|
122
|
-
config = good_config
|
|
123
|
-
config[:devices][:roku][:password] = "<password>"
|
|
124
|
-
codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
|
|
125
|
-
assert_equal [9], codes
|
|
126
|
-
end
|
|
127
|
-
|
|
128
|
-
def test_config_manager_validate_projects
|
|
129
|
-
logger = Logger.new("/dev/null")
|
|
130
|
-
config = good_config
|
|
131
|
-
config[:projects] = nil
|
|
132
|
-
codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
|
|
133
|
-
assert_equal [4], codes
|
|
134
|
-
end
|
|
135
|
-
|
|
136
|
-
def test_config_manager_validate_projects_default
|
|
137
|
-
logger = Logger.new("/dev/null")
|
|
138
|
-
config = good_config
|
|
139
|
-
config[:projects][:default] = nil
|
|
140
|
-
codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
|
|
141
|
-
assert_equal [5], codes
|
|
142
|
-
end
|
|
143
|
-
|
|
144
|
-
def test_config_manager_validate_projects_default_default_value
|
|
145
|
-
logger = Logger.new("/dev/null")
|
|
146
|
-
config = good_config
|
|
147
|
-
config[:projects][:default] = "<project id>".to_sym
|
|
148
|
-
codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
|
|
149
|
-
assert_equal [5], codes
|
|
150
|
-
end
|
|
151
|
-
|
|
152
|
-
def test_config_manager_validate_projects_default_is_symbol
|
|
153
|
-
logger = Logger.new("/dev/null")
|
|
154
|
-
config = good_config
|
|
155
|
-
config[:projects][:default] = "project_id"
|
|
156
|
-
codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
|
|
157
|
-
assert_equal [6], codes
|
|
158
|
-
end
|
|
159
|
-
|
|
160
|
-
def test_config_manager_validate_project_app_name
|
|
161
|
-
logger = Logger.new("/dev/null")
|
|
162
|
-
config = good_config
|
|
163
|
-
config[:projects][:project1][:app_name] = nil
|
|
164
|
-
codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
|
|
165
|
-
assert_equal [10], codes
|
|
166
|
-
end
|
|
167
|
-
|
|
168
|
-
def test_config_manager_validate_project_directory
|
|
169
|
-
logger = Logger.new("/dev/null")
|
|
170
|
-
config = good_config
|
|
171
|
-
config[:projects][:project1][:directory] = nil
|
|
172
|
-
codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
|
|
173
|
-
assert_equal [11], codes
|
|
174
|
-
end
|
|
175
|
-
|
|
176
|
-
def test_config_manager_validate_project_folders
|
|
177
|
-
logger = Logger.new("/dev/null")
|
|
178
|
-
config = good_config
|
|
179
|
-
config[:projects][:project1][:folders] = nil
|
|
180
|
-
codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
|
|
181
|
-
assert_equal [12], codes
|
|
182
|
-
end
|
|
183
|
-
|
|
184
|
-
def test_config_manager_validate_project_folders_is_array
|
|
185
|
-
logger = Logger.new("/dev/null")
|
|
186
|
-
config = good_config
|
|
187
|
-
config[:projects][:project1][:folders] = "Folders"
|
|
188
|
-
codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
|
|
189
|
-
assert_equal [13], codes
|
|
190
|
-
end
|
|
191
|
-
|
|
192
|
-
def test_config_manager_validate_project_files
|
|
193
|
-
logger = Logger.new("/dev/null")
|
|
194
|
-
config = good_config
|
|
195
|
-
config[:projects][:project1][:files] = nil
|
|
196
|
-
codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
|
|
197
|
-
assert_equal [14], codes
|
|
198
|
-
end
|
|
199
|
-
|
|
200
|
-
def test_config_manager_validate_project_filess_is_array
|
|
201
|
-
logger = Logger.new("/dev/null")
|
|
202
|
-
config = good_config
|
|
203
|
-
config[:projects][:project1][:files] = "Files"
|
|
204
|
-
codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
|
|
205
|
-
assert_equal [15], codes
|
|
206
|
-
end
|
|
207
|
-
|
|
208
97
|
def test_config_manager_edit_ip
|
|
209
98
|
logger = Logger.new("/dev/null")
|
|
210
99
|
config_path = "config/file/path"
|
|
211
100
|
args = {
|
|
212
101
|
config: config_path,
|
|
213
|
-
options: "ip:192.168.0.200",
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
stage: nil,
|
|
102
|
+
options: {edit_params: "ip:192.168.0.200",
|
|
103
|
+
device: :roku,
|
|
104
|
+
},
|
|
217
105
|
logger: logger
|
|
218
106
|
}
|
|
219
107
|
new_config = good_config
|
|
@@ -223,7 +111,6 @@ class ConfigManagerTest < Minitest::Test
|
|
|
223
111
|
io.expect(:read, good_config.to_json)
|
|
224
112
|
io.expect(:write, nil, [JSON.pretty_generate(new_config)])
|
|
225
113
|
io.expect(:close, nil)
|
|
226
|
-
config = nil
|
|
227
114
|
File.stub(:open, io) do
|
|
228
115
|
RokuBuilder::ConfigManager.edit_config(**args)
|
|
229
116
|
end
|
|
@@ -235,10 +122,7 @@ class ConfigManagerTest < Minitest::Test
|
|
|
235
122
|
config_path = "config/file/path"
|
|
236
123
|
args = {
|
|
237
124
|
config: config_path,
|
|
238
|
-
options: "user:new_user",
|
|
239
|
-
device: "roku",
|
|
240
|
-
project: nil,
|
|
241
|
-
stage: nil,
|
|
125
|
+
options: {edit_params: "user:new_user"},
|
|
242
126
|
logger: logger
|
|
243
127
|
}
|
|
244
128
|
new_config = good_config
|
|
@@ -248,7 +132,6 @@ class ConfigManagerTest < Minitest::Test
|
|
|
248
132
|
io.expect(:read, good_config.to_json)
|
|
249
133
|
io.expect(:write, nil, [JSON.pretty_generate(new_config)])
|
|
250
134
|
io.expect(:close, nil)
|
|
251
|
-
config = nil
|
|
252
135
|
File.stub(:open, io) do
|
|
253
136
|
RokuBuilder::ConfigManager.edit_config(**args)
|
|
254
137
|
end
|
|
@@ -260,10 +143,7 @@ class ConfigManagerTest < Minitest::Test
|
|
|
260
143
|
config_path = "config/file/path"
|
|
261
144
|
args = {
|
|
262
145
|
config: config_path,
|
|
263
|
-
options: "password:new_password",
|
|
264
|
-
device: nil,
|
|
265
|
-
project: nil,
|
|
266
|
-
stage: nil,
|
|
146
|
+
options: {edit_params: "password:new_password"},
|
|
267
147
|
logger: logger
|
|
268
148
|
}
|
|
269
149
|
new_config = good_config
|
|
@@ -273,7 +153,6 @@ class ConfigManagerTest < Minitest::Test
|
|
|
273
153
|
io.expect(:read, good_config.to_json)
|
|
274
154
|
io.expect(:write, nil, [JSON.pretty_generate(new_config)])
|
|
275
155
|
io.expect(:close, nil)
|
|
276
|
-
config = nil
|
|
277
156
|
File.stub(:open, io) do
|
|
278
157
|
RokuBuilder::ConfigManager.edit_config(**args)
|
|
279
158
|
end
|
|
@@ -285,10 +164,9 @@ class ConfigManagerTest < Minitest::Test
|
|
|
285
164
|
config_path = "config/file/path"
|
|
286
165
|
args = {
|
|
287
166
|
config: config_path,
|
|
288
|
-
options: "app_name:new name",
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
stage: nil,
|
|
167
|
+
options: {edit_params: "app_name:new name",
|
|
168
|
+
project: :project1
|
|
169
|
+
},
|
|
292
170
|
logger: logger
|
|
293
171
|
}
|
|
294
172
|
new_config = good_config
|
|
@@ -298,7 +176,6 @@ class ConfigManagerTest < Minitest::Test
|
|
|
298
176
|
io.expect(:read, good_config.to_json)
|
|
299
177
|
io.expect(:write, nil, [JSON.pretty_generate(new_config)])
|
|
300
178
|
io.expect(:close, nil)
|
|
301
|
-
config = nil
|
|
302
179
|
File.stub(:open, io) do
|
|
303
180
|
RokuBuilder::ConfigManager.edit_config(**args)
|
|
304
181
|
end
|
|
@@ -310,10 +187,9 @@ class ConfigManagerTest < Minitest::Test
|
|
|
310
187
|
config_path = "config/file/path"
|
|
311
188
|
args = {
|
|
312
189
|
config: config_path,
|
|
313
|
-
options: "directory:new/directory/path",
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
stage: nil,
|
|
190
|
+
options: {edit_params: "directory:new/directory/path",
|
|
191
|
+
project: :project1
|
|
192
|
+
},
|
|
317
193
|
logger: logger
|
|
318
194
|
}
|
|
319
195
|
new_config = good_config
|
|
@@ -323,7 +199,6 @@ class ConfigManagerTest < Minitest::Test
|
|
|
323
199
|
io.expect(:read, good_config.to_json)
|
|
324
200
|
io.expect(:write, nil, [JSON.pretty_generate(new_config)])
|
|
325
201
|
io.expect(:close, nil)
|
|
326
|
-
config = nil
|
|
327
202
|
File.stub(:open, io) do
|
|
328
203
|
RokuBuilder::ConfigManager.edit_config(**args)
|
|
329
204
|
end
|
|
@@ -335,10 +210,9 @@ class ConfigManagerTest < Minitest::Test
|
|
|
335
210
|
config_path = "config/file/path"
|
|
336
211
|
args = {
|
|
337
212
|
config: config_path,
|
|
338
|
-
options: "branch:new-branch",
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
stage: :production,
|
|
213
|
+
options: {edit_params: "branch:new-branch",
|
|
214
|
+
stage: :production
|
|
215
|
+
},
|
|
342
216
|
logger: logger
|
|
343
217
|
}
|
|
344
218
|
new_config = good_config
|
|
@@ -348,7 +222,6 @@ class ConfigManagerTest < Minitest::Test
|
|
|
348
222
|
io.expect(:read, good_config.to_json)
|
|
349
223
|
io.expect(:write, nil, [JSON.pretty_generate(new_config)])
|
|
350
224
|
io.expect(:close, nil)
|
|
351
|
-
config = nil
|
|
352
225
|
File.stub(:open, io) do
|
|
353
226
|
RokuBuilder::ConfigManager.edit_config(**args)
|
|
354
227
|
end
|
|
@@ -360,10 +233,7 @@ class ConfigManagerTest < Minitest::Test
|
|
|
360
233
|
config_path = "config/file/path"
|
|
361
234
|
args = {
|
|
362
235
|
config: config_path,
|
|
363
|
-
options: "branch:new-branch",
|
|
364
|
-
device: nil,
|
|
365
|
-
project: nil,
|
|
366
|
-
stage: nil,
|
|
236
|
+
options: {edit_params: "branch:new-branch"},
|
|
367
237
|
logger: logger
|
|
368
238
|
}
|
|
369
239
|
new_config = good_config
|
|
@@ -373,41 +243,10 @@ class ConfigManagerTest < Minitest::Test
|
|
|
373
243
|
io.expect(:read, good_config.to_json)
|
|
374
244
|
io.expect(:write, nil, [JSON.pretty_generate(new_config)])
|
|
375
245
|
io.expect(:close, nil)
|
|
376
|
-
config = nil
|
|
377
246
|
File.stub(:open, io) do
|
|
378
247
|
RokuBuilder::ConfigManager.edit_config(**args)
|
|
379
248
|
end
|
|
380
249
|
io.verify
|
|
381
250
|
end
|
|
382
251
|
|
|
383
|
-
def good_config
|
|
384
|
-
{
|
|
385
|
-
devices: {
|
|
386
|
-
default: :roku,
|
|
387
|
-
roku: {
|
|
388
|
-
ip: "192.168.0.100",
|
|
389
|
-
user: "user",
|
|
390
|
-
password: "password"
|
|
391
|
-
}
|
|
392
|
-
},
|
|
393
|
-
projects: {
|
|
394
|
-
default: :project1,
|
|
395
|
-
project1: {
|
|
396
|
-
directory: "<path/to/repo>",
|
|
397
|
-
folders: ["resources","source"],
|
|
398
|
-
files: ["manifest"],
|
|
399
|
-
app_name: "<app name>",
|
|
400
|
-
stages:{
|
|
401
|
-
production: {
|
|
402
|
-
branch: "production",
|
|
403
|
-
key: {
|
|
404
|
-
keyed_pkg: "<path/to/signed/pkg>",
|
|
405
|
-
password: "<password for pkg>"
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
end
|
|
413
252
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require_relative "test_helper.rb"
|
|
2
2
|
|
|
3
|
-
class
|
|
3
|
+
class ConfigParserTest < Minitest::Test
|
|
4
4
|
def test_manifest_config
|
|
5
5
|
logger = Logger.new("/dev/null")
|
|
6
6
|
options = {
|
|
@@ -9,11 +9,11 @@ class ControllerConfigTest < Minitest::Test
|
|
|
9
9
|
update_manifest: false,
|
|
10
10
|
fetch: false,
|
|
11
11
|
}
|
|
12
|
-
|
|
12
|
+
config = good_config
|
|
13
|
+
code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
|
|
13
14
|
|
|
15
|
+
assert_equal RokuBuilder::SUCCESS, code
|
|
16
|
+
assert_equal Hash, config.class
|
|
14
17
|
assert_equal "/dev/null", configs[:manifest_config][:root_dir]
|
|
15
|
-
assert_equal logger, configs[:manifest_config][:logger]
|
|
16
|
-
|
|
17
|
-
|
|
18
18
|
end
|
|
19
19
|
end
|