ruboto-core 0.5.1 → 0.5.2
Sign up to get free protection for your applications and to get access to all the features.
- metadata +16 -88
- data/COPYING +0 -19
- data/Gemfile +0 -4
- data/Gemfile.lock +0 -21
- data/README.md +0 -293
- data/Rakefile +0 -104
- data/assets/Rakefile +0 -386
- data/assets/res/drawable-hdpi/icon.png +0 -0
- data/assets/res/drawable-ldpi/icon.png +0 -0
- data/assets/res/drawable-mdpi/icon.png +0 -0
- data/assets/res/layout/get_ruboto_core.xml +0 -25
- data/assets/samples/sample_activity.rb +0 -21
- data/assets/samples/sample_activity_test.rb +0 -21
- data/assets/samples/sample_broadcast_receiver.rb +0 -6
- data/assets/samples/sample_broadcast_receiver_test.rb +0 -1
- data/assets/samples/sample_service.rb +0 -14
- data/assets/samples/sample_service_test.rb +0 -1
- data/assets/src/InheritingActivity.java +0 -195
- data/assets/src/InheritingBroadcastReceiver.java +0 -27
- data/assets/src/InheritingClass.java +0 -19
- data/assets/src/InheritingService.java +0 -9
- data/assets/src/RubotoActivity.java +0 -111
- data/assets/src/RubotoBroadcastReceiver.java +0 -51
- data/assets/src/RubotoService.java +0 -61
- data/assets/src/org/ruboto/RubotoDialog.java +0 -11
- data/assets/src/org/ruboto/Script.java +0 -509
- data/assets/src/org/ruboto/test/ActivityTest.java +0 -63
- data/assets/src/org/ruboto/test/InstrumentationTestRunner.java +0 -117
- data/assets/src/ruboto.rb +0 -621
- data/assets/test/assets/scripts/test_helper.rb +0 -13
- data/bin/ruboto +0 -5
- data/lib/java_class_gen/InheritingClass.java.erb +0 -10
- data/lib/java_class_gen/android_api.xml +0 -1
- data/lib/ruboto.rb +0 -16
- data/lib/ruboto/api.rb +0 -21
- data/lib/ruboto/commands/base.rb +0 -392
- data/lib/ruboto/core_ext/array.rb +0 -6
- data/lib/ruboto/core_ext/object.rb +0 -10
- data/lib/ruboto/util/asset_copier.rb +0 -27
- data/lib/ruboto/util/build.rb +0 -201
- data/lib/ruboto/util/code_formatting.rb +0 -22
- data/lib/ruboto/util/log_action.rb +0 -20
- data/lib/ruboto/util/main_fix.rb +0 -13
- data/lib/ruboto/util/objectspace.rb +0 -8
- data/lib/ruboto/util/scan_in_api.rb +0 -40
- data/lib/ruboto/util/update.rb +0 -405
- data/lib/ruboto/util/verify.rb +0 -87
- data/lib/ruboto/util/xml_element.rb +0 -200
- data/lib/ruboto/version.rb +0 -3
- data/test/activity/image_button_activity.rb +0 -21
- data/test/activity/image_button_activity_test.rb +0 -21
- data/test/activity/image_button_and_button_activity.rb +0 -24
- data/test/activity/image_button_and_button_activity_test.rb +0 -27
- data/test/activity/option_menu_activity.rb +0 -21
- data/test/activity/option_menu_activity_test.rb +0 -20
- data/test/activity/stack_activity.rb +0 -21
- data/test/activity/stack_activity_test.rb +0 -23
- data/test/app_test_methods.rb +0 -41
- data/test/minimal_app_test.rb +0 -22
- data/test/rake_test.rb +0 -40
- data/test/ruboto_gen_test.rb +0 -32
- data/test/ruboto_gen_with_psych_test.rb +0 -16
- data/test/ruboto_update_test.rb +0 -5
- data/test/ruboto_update_with_psych_test.rb +0 -18
- data/test/service_test.rb +0 -49
- data/test/test_helper.rb +0 -176
- data/test/update_test_methods.rb +0 -33
@@ -1,23 +0,0 @@
|
|
1
|
-
activity org.ruboto.test_app.StackActivity
|
2
|
-
|
3
|
-
setup do |activity|
|
4
|
-
start = Time.now
|
5
|
-
loop do
|
6
|
-
@text_view = activity.findViewById(42)
|
7
|
-
break if @text_view || (Time.now - start > 60)
|
8
|
-
sleep 1
|
9
|
-
end
|
10
|
-
assert @text_view
|
11
|
-
end
|
12
|
-
|
13
|
-
test('stack depth') do |activity|
|
14
|
-
os_offset = {13 => 1}[android.os.Build::VERSION::SDK_INT].to_i
|
15
|
-
jruby_offset = {
|
16
|
-
'1.5.6' => [-2, -5, -6, -8],
|
17
|
-
}[org.jruby.runtime.Constants::VERSION] || [0,0,0,0]
|
18
|
-
version_message ="ANDROID: #{android.os.Build::VERSION::SDK_INT}, JRuby: #{org.jruby.runtime.Constants::VERSION}"
|
19
|
-
assert_equal 44 + os_offset + jruby_offset[0], activity.find_view_by_id(42).text.to_i, version_message
|
20
|
-
assert_equal 68 + os_offset + jruby_offset[1], activity.find_view_by_id(43).text.to_i, version_message
|
21
|
-
assert_equal 77 + os_offset + jruby_offset[2], activity.find_view_by_id(44).text.to_i, version_message
|
22
|
-
assert_equal 96 + os_offset + jruby_offset[3], activity.find_view_by_id(45).text.to_i, version_message
|
23
|
-
end
|
data/test/app_test_methods.rb
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
require File.expand_path("test_helper", File.dirname(__FILE__))
|
2
|
-
|
3
|
-
module AppTestMethods
|
4
|
-
include RubotoTest
|
5
|
-
|
6
|
-
def test_activity_tests
|
7
|
-
if not ON_JRUBY_JARS_1_5_6
|
8
|
-
assert_code 'YamlLoads', "with_large_stack{require 'yaml'}"
|
9
|
-
else
|
10
|
-
puts "Skipping YAML tests on jruby-jars-1.5.6"
|
11
|
-
end
|
12
|
-
|
13
|
-
assert_code 'ReadSourceFile', "File.read(__FILE__)"
|
14
|
-
assert_code 'DirListsFilesInApk', 'Dir["#{File.dirname(__FILE__)}/*"].each{|f| raise "File #{f.inspect} not found" unless File.exists?(f)}'
|
15
|
-
|
16
|
-
Dir[File.expand_path('activity/*_test.rb', File.dirname(__FILE__))].each do |test_src|
|
17
|
-
snake_name = test_src.chomp('_test.rb')
|
18
|
-
activity_name = File.basename(snake_name).split('_').map { |s| "#{s[0..0].upcase}#{s[1..-1]}" }.join
|
19
|
-
Dir.chdir APP_DIR do
|
20
|
-
system "#{RUBOTO_CMD} gen class Activity --name #{activity_name}"
|
21
|
-
FileUtils.cp "#{snake_name}.rb", "src/"
|
22
|
-
FileUtils.cp test_src, "test/assets/scripts/"
|
23
|
-
end
|
24
|
-
end
|
25
|
-
run_app_tests
|
26
|
-
end
|
27
|
-
|
28
|
-
private
|
29
|
-
|
30
|
-
def assert_code(activity_name, code)
|
31
|
-
snake_name = activity_name.scan(/[A-Z]+[a-z]+/).map { |s| s.downcase }.join('_')
|
32
|
-
filename = "src/#{snake_name}_activity.rb"
|
33
|
-
Dir.chdir APP_DIR do
|
34
|
-
system "#{RUBOTO_CMD} gen class Activity --name #{activity_name}Activity"
|
35
|
-
s = File.read(filename)
|
36
|
-
s.gsub!(/(require 'ruboto')/, "\\1\n#{code}")
|
37
|
-
File.open(filename, 'w') { |f| f << s }
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
end
|
data/test/minimal_app_test.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
require File.expand_path("test_helper", File.dirname(__FILE__))
|
2
|
-
|
3
|
-
class MinimalAppTest < Test::Unit::TestCase
|
4
|
-
def setup
|
5
|
-
generate_app :excluded_stdlibs => %w{ant cgi digest dl drb ffi irb net optparse racc rbconfig rdoc rexml rinda rss rubygems runit shell soap test uri webrick win32 wsdl xmlrpc xsd}
|
6
|
-
end
|
7
|
-
|
8
|
-
def teardown
|
9
|
-
cleanup_app
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_minimal_apk_is_less_than_3_mb
|
13
|
-
apk_size = File.size("#{APP_DIR}/bin/RubotoTestApp-debug.apk").to_f / (1024 * 1024)
|
14
|
-
limit = 3.0
|
15
|
-
assert apk_size < limit, "APK was larger than #{'%.1f' % limit}MB: #{'%.1f' % apk_size}MB"
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_minimal_apk_succeeds_tests
|
19
|
-
run_app_tests
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|
data/test/rake_test.rb
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
require File.expand_path("test_helper", File.dirname(__FILE__))
|
2
|
-
|
3
|
-
class RakeTest < Test::Unit::TestCase
|
4
|
-
def setup
|
5
|
-
generate_app
|
6
|
-
end
|
7
|
-
|
8
|
-
def teardown
|
9
|
-
cleanup_app
|
10
|
-
end
|
11
|
-
|
12
|
-
if ANDROID_OS == 'android-7'
|
13
|
-
puts "Skipping sdcard test since files on sdcard are not removed on android-7 on app uninstall"
|
14
|
-
else
|
15
|
-
def test_that_update_scripts_task_copies_files_to_sdcard_and_are_read_by_activity
|
16
|
-
Dir.chdir APP_DIR do
|
17
|
-
activity_filename = "src/ruboto_test_app_activity.rb"
|
18
|
-
s = File.read(activity_filename)
|
19
|
-
s.gsub!(/What hath Matz wrought\?/, "This text was changed by script!")
|
20
|
-
File.open(activity_filename, 'w') { |f| f << s }
|
21
|
-
|
22
|
-
test_filename = "test/assets/scripts/ruboto_test_app_activity_test.rb"
|
23
|
-
s2 = File.read(test_filename)
|
24
|
-
s2.gsub!(/What hath Matz wrought\?/, "This text was changed by script!")
|
25
|
-
File.open(test_filename, 'w') { |f| f << s2 }
|
26
|
-
|
27
|
-
apk_timestamp = File.ctime("bin/#{APP_NAME}-debug.apk")
|
28
|
-
system 'rake test:quick'
|
29
|
-
assert_equal 0, $?
|
30
|
-
|
31
|
-
# FIXME(uwe): Uncomment this when we can build the test package without building the main package
|
32
|
-
# assert_equal apk_timestamp, File.ctime("bin/#{APP_NAME}-debug.apk"), 'APK should not have been rebuilt'
|
33
|
-
# FIXME end
|
34
|
-
|
35
|
-
assert `adb shell ls -d /sdcard/Android/data/#{PACKAGE}/files/scripts`.chomp =~ %r{^/sdcard/Android/data/#{PACKAGE}/files/scripts$}
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
end
|
data/test/ruboto_gen_test.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
require File.expand_path("test_helper", File.dirname(__FILE__))
|
2
|
-
require 'test/app_test_methods'
|
3
|
-
|
4
|
-
class RubotoGenTest < Test::Unit::TestCase
|
5
|
-
include AppTestMethods
|
6
|
-
|
7
|
-
def setup
|
8
|
-
generate_app
|
9
|
-
end
|
10
|
-
|
11
|
-
def teardown
|
12
|
-
cleanup_app
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_icons_are_updated
|
16
|
-
Dir.chdir APP_DIR do
|
17
|
-
assert_equal 4032, File.size('res/drawable-hdpi/icon.png')
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_gen_class_activity_with_lowercase_should_fail
|
22
|
-
Dir.chdir APP_DIR do
|
23
|
-
system "#{RUBOTO_CMD} gen class activity --name VeryNewActivity"
|
24
|
-
assert_equal 1, $?.exitstatus
|
25
|
-
assert !File.exists?('src/org/ruboto/test_app/VeryNewActivity.java')
|
26
|
-
assert !File.exists?('src/very_new_activity.rb')
|
27
|
-
assert !File.exists?('test/assets/scripts/very_new_activity_test.rb')
|
28
|
-
assert File.read('AndroidManifest.xml') !~ /VeryNewActivity/
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
require File.expand_path("ruboto_gen_test", File.dirname(__FILE__))
|
2
|
-
|
3
|
-
if not RubotoTest::ON_JRUBY_JARS_1_5_6
|
4
|
-
class RubotoGenWithPsychTest < RubotoGenTest
|
5
|
-
def setup
|
6
|
-
generate_app :with_psych => true
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_psych_jar_exists
|
10
|
-
assert File.exists?("#{APP_DIR}/libs/psych.jar"), "Failed to generate psych jar"
|
11
|
-
end
|
12
|
-
|
13
|
-
end
|
14
|
-
else
|
15
|
-
puts "Skipping Psych tests on jruby-jars-1.5.6"
|
16
|
-
end
|
data/test/ruboto_update_test.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
require File.expand_path("update_test_methods", File.dirname(__FILE__))
|
2
|
-
|
3
|
-
if not RubotoTest::ON_JRUBY_JARS_1_5_6
|
4
|
-
class RubotoUpdateWithPsychTest < Test::Unit::TestCase
|
5
|
-
include UpdateTestMethods
|
6
|
-
|
7
|
-
def setup
|
8
|
-
super(true)
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_psych_jar_exists
|
12
|
-
assert File.exists?("#{APP_DIR}/libs/psych.jar"), "Failed to generate psych jar"
|
13
|
-
end
|
14
|
-
|
15
|
-
end
|
16
|
-
else
|
17
|
-
puts "Skipping Psych tests on jruby-jars-1.5.6"
|
18
|
-
end
|
data/test/service_test.rb
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
require File.expand_path("test_helper", File.dirname(__FILE__))
|
2
|
-
require 'fileutils'
|
3
|
-
|
4
|
-
class ServiceTest < Test::Unit::TestCase
|
5
|
-
SRC_DIR ="#{APP_DIR}/src"
|
6
|
-
|
7
|
-
def setup
|
8
|
-
generate_app
|
9
|
-
end
|
10
|
-
|
11
|
-
def teardown
|
12
|
-
cleanup_app
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_service_startup
|
16
|
-
Dir.chdir APP_DIR do
|
17
|
-
system "#{RUBOTO_CMD} gen class Service --name RubotoTestService"
|
18
|
-
service_filename = "#{SRC_DIR}/ruboto_test_service.rb"
|
19
|
-
assert File.exists? service_filename
|
20
|
-
File.open(service_filename, 'w'){|f| f << <<EOF}
|
21
|
-
require 'ruboto'
|
22
|
-
|
23
|
-
$service.handle_create do
|
24
|
-
Thread.start do
|
25
|
-
loop do
|
26
|
-
sleep 1
|
27
|
-
puts "\#{self.class} running..."
|
28
|
-
end
|
29
|
-
end
|
30
|
-
puts "\#{self.class} started."
|
31
|
-
android.app.Service::START_STICKY
|
32
|
-
end
|
33
|
-
|
34
|
-
$service.handle_start_command do
|
35
|
-
android.app.Service::START_STICKY
|
36
|
-
end
|
37
|
-
EOF
|
38
|
-
|
39
|
-
activity_filename = "#{SRC_DIR}/ruboto_test_app_activity.rb"
|
40
|
-
s = File.read(activity_filename)
|
41
|
-
s.gsub!(/^(end)$/, "
|
42
|
-
startService(android.content.Intent.new($activity.application_context, $package.RubotoTestService.java_class))
|
43
|
-
\\1\n")
|
44
|
-
File.open(activity_filename, 'w') { |f| f << s }
|
45
|
-
end
|
46
|
-
run_app_tests
|
47
|
-
end
|
48
|
-
|
49
|
-
end
|
data/test/test_helper.rb
DELETED
@@ -1,176 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
require 'rubygems'
|
3
|
-
require 'fileutils'
|
4
|
-
require 'yaml'
|
5
|
-
|
6
|
-
module RubotoTest
|
7
|
-
PROJECT_DIR = File.expand_path('..', File.dirname(__FILE__))
|
8
|
-
$LOAD_PATH << PROJECT_DIR
|
9
|
-
|
10
|
-
# FIXME(uwe): Simplify when we stop supporting rubygems < 1.8.0
|
11
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.8.0')
|
12
|
-
gem_spec = Gem::Specification.find_by_path 'jruby-jars'
|
13
|
-
else
|
14
|
-
gem_spec = Gem.searcher.find('jruby-jars')
|
15
|
-
end
|
16
|
-
# FIXME end
|
17
|
-
|
18
|
-
raise StandardError.new("Can't find Gem specification jruby-jars.") unless gem_spec
|
19
|
-
JRUBY_JARS_VERSION = gem_spec.version
|
20
|
-
|
21
|
-
# FIXME(uwe): Remove when we stop supporting JRuby 1.5.6
|
22
|
-
ON_JRUBY_JARS_1_5_6 = JRUBY_JARS_VERSION == Gem::Version.new('1.5.6')
|
23
|
-
|
24
|
-
PACKAGE = 'org.ruboto.test_app'
|
25
|
-
APP_NAME = 'RubotoTestApp'
|
26
|
-
TMP_DIR = File.join PROJECT_DIR, 'tmp'
|
27
|
-
APP_DIR = File.join TMP_DIR, APP_NAME
|
28
|
-
ANDROID_TARGET = ENV['ANDROID_TARGET'] || 'android-7'
|
29
|
-
|
30
|
-
VERSION_TO_API_LEVEL = {
|
31
|
-
'2.1' => 'android-7', '2.1-update1' => 'android-7', '2.2' => 'android-8',
|
32
|
-
'2.3' => 'android-9', '2.3.1' => 'android-9', '2.3.2' => 'android-9',
|
33
|
-
'2.3.3' => 'android-10', '2.3.4' => 'android-10',
|
34
|
-
'3.0' => 'android-11', '3.1' => 'android-12', '3.2' => 'android-13'
|
35
|
-
}
|
36
|
-
|
37
|
-
def self.version_from_device
|
38
|
-
puts "Reading OS version from device/emulator"
|
39
|
-
system "adb wait-for-device"
|
40
|
-
start = Time.now
|
41
|
-
IO.popen('adb bugreport').each_line do |line|
|
42
|
-
if line =~ /sdk-eng (.*?) .*? .*? test-keys/
|
43
|
-
version = $1
|
44
|
-
api_level = VERSION_TO_API_LEVEL[version]
|
45
|
-
raise "Unknown version: #{version}" if api_level.nil?
|
46
|
-
puts "Getting version from device/emulator took #{(Time.now - start).to_i}s"
|
47
|
-
return api_level
|
48
|
-
end
|
49
|
-
if line =~ /\[ro\.build\.version\.sdk\]: \[(\d+)\]/
|
50
|
-
return $1
|
51
|
-
end
|
52
|
-
end
|
53
|
-
raise "Unable to read device/emulator apilevel"
|
54
|
-
end
|
55
|
-
|
56
|
-
ANDROID_OS = ENV['ANDROID_OS'] || version_from_device
|
57
|
-
RUBOTO_CMD = "ruby -rubygems -I #{PROJECT_DIR}/lib #{PROJECT_DIR}/bin/ruboto"
|
58
|
-
|
59
|
-
puts "ANDROID_OS: #{ANDROID_OS}"
|
60
|
-
end
|
61
|
-
|
62
|
-
class Test::Unit::TestCase
|
63
|
-
include RubotoTest
|
64
|
-
alias old_run run
|
65
|
-
|
66
|
-
def run(*args, &block)
|
67
|
-
mark_test_start("#{self.class.name}\##{method_name}")
|
68
|
-
old_run(*args, &block)
|
69
|
-
mark_test_end("#{self.class.name}\##{method_name}")
|
70
|
-
end
|
71
|
-
|
72
|
-
def mark_test_start(test_name)
|
73
|
-
@start_time = Time.now
|
74
|
-
log
|
75
|
-
log '=' * 80
|
76
|
-
log "Starting test #{test_name} at #{@start_time.strftime('%Y-%m-%d %H:%M:%S')}:"
|
77
|
-
log
|
78
|
-
end
|
79
|
-
|
80
|
-
def mark_test_end(test_name)
|
81
|
-
log
|
82
|
-
log "Ended test #{test_name}: #{passed? ? 'PASSED' : 'FAILED'} after #{(Time.now - @start_time).to_i}s"
|
83
|
-
log '=' * 80
|
84
|
-
log
|
85
|
-
end
|
86
|
-
|
87
|
-
def log(message = '')
|
88
|
-
puts message
|
89
|
-
system "adb shell log -t 'RUBOTO TEST' '#{message}'"
|
90
|
-
end
|
91
|
-
|
92
|
-
def generate_app(options = {})
|
93
|
-
with_psych = options.delete(:with_psych) || false
|
94
|
-
update = options.delete(:update) || false
|
95
|
-
excluded_stdlibs = options.delete(:excluded_stdlibs)
|
96
|
-
raise "Unknown options: #{options.inspect}" unless options.empty?
|
97
|
-
Dir.mkdir TMP_DIR unless File.exists? TMP_DIR
|
98
|
-
|
99
|
-
if with_psych || excluded_stdlibs
|
100
|
-
system 'rake platform:uninstall'
|
101
|
-
else
|
102
|
-
system 'rake platform:install'
|
103
|
-
end
|
104
|
-
if $? != 0
|
105
|
-
FileUtils.rm_rf 'tmp/RubotoCore'
|
106
|
-
fail 'Error (un)installing RubotoCore'
|
107
|
-
end
|
108
|
-
|
109
|
-
FileUtils.rm_rf APP_DIR if File.exists? APP_DIR
|
110
|
-
template_dir = "#{APP_DIR}_template_#{$$}#{'_with_psych' if with_psych}#{'_updated' if update}#{"_without_#{excluded_stdlibs.join('_')}" if excluded_stdlibs}"
|
111
|
-
if File.exists?(template_dir)
|
112
|
-
puts "Copying app from template #{template_dir}"
|
113
|
-
FileUtils.cp_r template_dir, APP_DIR, :preserve => true
|
114
|
-
else
|
115
|
-
if update
|
116
|
-
Dir.chdir TMP_DIR do
|
117
|
-
system "tar xzf #{PROJECT_DIR}/examples/RubotoTestApp_0.1.0_jruby_1.6.3.dev.tgz"
|
118
|
-
end
|
119
|
-
if ENV['ANDROID_HOME']
|
120
|
-
android_home = ENV['ANDROID_HOME']
|
121
|
-
else
|
122
|
-
android_home = File.dirname(File.dirname(`which adb`))
|
123
|
-
end
|
124
|
-
Dir.chdir APP_DIR do
|
125
|
-
File.open('local.properties', 'w') { |f| f.puts "sdk.dir=#{android_home}" }
|
126
|
-
File.open('test/local.properties', 'w') { |f| f.puts "sdk.dir=#{android_home}" }
|
127
|
-
FileUtils.touch "libs/psych.jar" if with_psych
|
128
|
-
exclude_stdlibs(excluded_stdlibs) if excluded_stdlibs
|
129
|
-
system "#{RUBOTO_CMD} update app"
|
130
|
-
assert_equal 0, $?, "update app failed with return code #$?"
|
131
|
-
end
|
132
|
-
else
|
133
|
-
puts "Generating app #{APP_DIR}"
|
134
|
-
system "#{RUBOTO_CMD} gen app --package #{PACKAGE} --path #{APP_DIR} --name #{APP_NAME} --target #{ANDROID_TARGET} #{'--with-psych' if with_psych}"
|
135
|
-
if $? != 0
|
136
|
-
FileUtils.rm_rf APP_DIR
|
137
|
-
raise "gen app failed with return code #$?"
|
138
|
-
end
|
139
|
-
if excluded_stdlibs
|
140
|
-
Dir.chdir APP_DIR do
|
141
|
-
exclude_stdlibs(excluded_stdlibs)
|
142
|
-
system "#{RUBOTO_CMD} update jruby --force"
|
143
|
-
raise "update jruby failed with return code #$?" if $? != 0
|
144
|
-
end
|
145
|
-
end
|
146
|
-
end
|
147
|
-
Dir.chdir APP_DIR do
|
148
|
-
system 'rake debug'
|
149
|
-
assert_equal 0, $?
|
150
|
-
end
|
151
|
-
puts "Storing app as template #{template_dir}"
|
152
|
-
FileUtils.cp_r APP_DIR, template_dir, :preserve => true
|
153
|
-
end
|
154
|
-
end
|
155
|
-
|
156
|
-
def cleanup_app
|
157
|
-
# FileUtils.rm_rf APP_DIR if File.exists? APP_DIR
|
158
|
-
end
|
159
|
-
|
160
|
-
def run_app_tests
|
161
|
-
if ['android-7', 'android-8'].include? ANDROID_OS
|
162
|
-
puts "Skipping instrumentation tests on #{ANDROID_OS} since they don't work."
|
163
|
-
else
|
164
|
-
Dir.chdir APP_DIR do
|
165
|
-
system 'rake test:quick'
|
166
|
-
assert_equal 0, $?, "tests failed with return code #$?"
|
167
|
-
end
|
168
|
-
end
|
169
|
-
end
|
170
|
-
|
171
|
-
def exclude_stdlibs(excluded_stdlibs)
|
172
|
-
puts "Adding ruboto.yml: #{excluded_stdlibs.join(' ')}"
|
173
|
-
File.open('ruboto.yml', 'w') { |f| f << YAML.dump({:excluded_stdlibs => excluded_stdlibs}) }
|
174
|
-
end
|
175
|
-
|
176
|
-
end
|
data/test/update_test_methods.rb
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
require File.expand_path("test_helper", File.dirname(__FILE__))
|
2
|
-
require 'test/app_test_methods'
|
3
|
-
|
4
|
-
module UpdateTestMethods
|
5
|
-
include RubotoTest
|
6
|
-
include AppTestMethods
|
7
|
-
|
8
|
-
def setup(with_psych = false)
|
9
|
-
generate_app(:with_psych => with_psych, :update => true)
|
10
|
-
end
|
11
|
-
|
12
|
-
def teardown
|
13
|
-
cleanup_app
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_properties_and_ant_file_has_no_duplicates
|
17
|
-
Dir.chdir APP_DIR do
|
18
|
-
# FIXME(uwe): Cleanup when we stop support Android SDK <= 13
|
19
|
-
prop_file = %w{test/ant.properties test/build.properties}.find{|f| File.exists?(f)}
|
20
|
-
# FIXME end
|
21
|
-
|
22
|
-
assert File.readlines(prop_file).grep(/\w/).uniq!.nil?, "Duplicate lines in #{prop_file}"
|
23
|
-
assert_equal 1, File.readlines('test/build.xml').grep(/<macrodef name="run-tests-helper">/).size, 'Duplicate macro in build.xml'
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_icons_are_untouched
|
28
|
-
Dir.chdir APP_DIR do
|
29
|
-
assert_equal 4100, File.size('res/drawable-hdpi/icon.png')
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
end
|