ruboto 0.8.0 → 0.8.1
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/Rakefile +35 -11
- data/assets/rakelib/ruboto.rake +2 -0
- data/assets/samples/sample_activity.rb +1 -0
- data/assets/samples/sample_class.rb +2 -0
- data/assets/samples/sample_class_test.rb +1 -0
- data/assets/src/InheritingActivity.java +1 -1
- data/assets/src/InheritingBroadcastReceiver.java +2 -1
- data/assets/src/InheritingClass.java +15 -7
- data/assets/src/InheritingService.java +1 -2
- data/assets/src/RubotoActivity.java +20 -110
- data/assets/src/RubotoBroadcastReceiver.java +16 -62
- data/assets/src/RubotoService.java +13 -89
- data/assets/src/org/ruboto/EntryPointActivity.java +1 -1
- data/assets/src/org/ruboto/JRubyAdapter.java +23 -23
- data/assets/src/org/ruboto/RubotoComponent.java +8 -0
- data/assets/src/org/ruboto/Script.java +10 -5
- data/assets/src/org/ruboto/ScriptInfo.java +53 -0
- data/assets/src/org/ruboto/ScriptLoader.java +143 -0
- data/assets/src/org/ruboto/test/ActivityTest.java +15 -8
- data/assets/src/org/ruboto/test/InstrumentationTestRunner.java +11 -6
- data/assets/src/ruboto/activity.rb +43 -17
- data/assets/src/ruboto/base.rb +7 -1
- data/assets/src/ruboto/generate.rb +6 -2
- data/assets/src/ruboto/legacy.rb +1 -1
- data/assets/src/ruboto/menu.rb +4 -4
- data/assets/src/ruboto/widget.rb +4 -11
- data/lib/ruboto/commands/base.rb +21 -7
- data/lib/ruboto/util/build.rb +6 -3
- data/lib/ruboto/util/code_formatting.rb +2 -2
- data/lib/ruboto/util/update.rb +58 -58
- data/lib/ruboto/util/xml_element.rb +14 -11
- data/lib/ruboto/version.rb +2 -1
- data/test/activity/generate_activity.rb +35 -0
- data/test/activity/generate_activity_test.rb +17 -0
- data/test/activity/image_button_activity.rb +1 -0
- data/test/activity/image_button_and_button_activity.rb +1 -0
- data/test/activity/margins_activity.rb +1 -0
- data/test/activity/navigation_activity.rb +20 -5
- data/test/activity/navigation_activity_test.rb +43 -4
- data/test/activity/option_menu_activity.rb +1 -0
- data/test/activity/psych_activity.rb +2 -1
- data/test/activity/stack_activity.rb +1 -0
- data/test/activity/stack_activity_test.rb +11 -5
- data/test/block_def_activity/margins_activity.rb +2 -1
- data/test/block_def_activity/psych_activity.rb +1 -1
- data/test/block_def_activity/stack_activity_test.rb +1 -1
- data/test/handle_activity/psych_activity.rb +1 -1
- data/test/handle_activity/stack_activity_test.rb +17 -9
- data/test/minimal_app_test.rb +2 -2
- data/test/rake_test.rb +1 -1
- data/test/ruboto_gen_test.rb +162 -34
- data/test/service_test.rb +1 -2
- data/test/sqldroid_test.rb +87 -0
- data/test/test_helper.rb +19 -12
- data/test/update_test_methods.rb +29 -44
- data/test/view_constants_test.rb +1 -2
- metadata +12 -4
data/test/minimal_app_test.rb
CHANGED
@@ -17,8 +17,8 @@ if RubotoTest::RUBOTO_PLATFORM == 'STANDALONE'
|
|
17
17
|
apk_size = BigDecimal(File.size("#{APP_DIR}/bin/RubotoTestApp-debug.apk").to_s) / (1024 * 1024)
|
18
18
|
upper_limit = {
|
19
19
|
'1.6.7' => 3.2,
|
20
|
-
'1.7.0.preview1' =>
|
21
|
-
'1.7.0.preview2' =>
|
20
|
+
'1.7.0.preview1' => 4.6,
|
21
|
+
'1.7.0.preview2' => 4.6,
|
22
22
|
}[JRUBY_JARS_VERSION.to_s] || 3.2
|
23
23
|
lower_limit = upper_limit * 0.9
|
24
24
|
version_message ="JRuby: #{JRUBY_JARS_VERSION}, ANDROID_TARGET: #{ANDROID_TARGET}"
|
data/test/rake_test.rb
CHANGED
@@ -31,7 +31,7 @@ class RakeTest < Test::Unit::TestCase
|
|
31
31
|
|
32
32
|
# FIXME(uwe): Uncomment this when we can build the test package without building the main package
|
33
33
|
# assert_equal apk_timestamp, File.ctime("bin/#{APP_NAME}-debug.apk"), 'APK should not have been rebuilt'
|
34
|
-
#
|
34
|
+
# EMXIF
|
35
35
|
|
36
36
|
assert_match %r{^/sdcard/Android/data/#{PACKAGE}/files/scripts$}, `adb shell ls -d /sdcard/Android/data/#{PACKAGE}/files/scripts`.chomp
|
37
37
|
end
|
data/test/ruboto_gen_test.rb
CHANGED
@@ -39,15 +39,15 @@ class RubotoGenTest < Test::Unit::TestCase
|
|
39
39
|
if RUBOTO_PLATFORM == 'STANDALONE'
|
40
40
|
upper_limit = {
|
41
41
|
'1.6.7' => 5800.0,
|
42
|
-
'1.7.0.preview1' =>
|
43
|
-
'1.7.0.preview2' =>
|
42
|
+
'1.7.0.preview1' => 7308.0,
|
43
|
+
'1.7.0.preview2' => 7308.0,
|
44
44
|
}[JRUBY_JARS_VERSION.to_s] || 4200.0
|
45
45
|
version << ", JRuby: #{JRUBY_JARS_VERSION.to_s}"
|
46
46
|
else
|
47
47
|
upper_limit = {
|
48
|
-
7 =>
|
49
|
-
10 =>
|
50
|
-
15 =>
|
48
|
+
7 => 67.0,
|
49
|
+
10 => 309.0,
|
50
|
+
15 => 309.0,
|
51
51
|
}[ANDROID_TARGET] || 64.0
|
52
52
|
end
|
53
53
|
lower_limit = upper_limit * 0.9
|
@@ -60,48 +60,176 @@ class RubotoGenTest < Test::Unit::TestCase
|
|
60
60
|
system "#{RUBOTO_CMD} gen subclass android.database.sqlite.SQLiteOpenHelper --name MyDatabaseHelper --method_base on"
|
61
61
|
assert_equal 0, $?.exitstatus
|
62
62
|
assert File.exists?('src/org/ruboto/test_app/MyDatabaseHelper.java')
|
63
|
-
|
64
|
-
|
65
|
-
# assert File.exists?('test/src/my_database_helper_test.rb')
|
63
|
+
assert File.exists?('src/my_database_helper.rb')
|
64
|
+
assert File.exists?('test/src/my_database_helper_test.rb')
|
66
65
|
system 'rake debug'
|
67
66
|
assert_equal 0, $?
|
68
67
|
end
|
69
68
|
end
|
70
69
|
|
71
|
-
def
|
70
|
+
def test_gen_subclass_of_array_adapter
|
72
71
|
Dir.chdir APP_DIR do
|
73
|
-
system "#{RUBOTO_CMD} gen
|
72
|
+
system "#{RUBOTO_CMD} gen subclass android.widget.ArrayAdapter --name RubotoArrayAdapter --method_base all"
|
74
73
|
assert_equal 0, $?.exitstatus
|
75
|
-
java_source_file = 'src/org/ruboto/test_app/
|
74
|
+
java_source_file = 'src/org/ruboto/test_app/RubotoArrayAdapter.java'
|
76
75
|
assert File.exists?(java_source_file)
|
77
|
-
# FIXME(uwe): Add tests and definition script?
|
78
|
-
# assert File.exists?('src/my_runnable.rb')
|
79
|
-
# assert File.exists?('test/src/my_runnable_test.rb')
|
80
76
|
|
77
|
+
# FIXME(uwe): Workaround for Ruboto Issue #246
|
81
78
|
java_source = File.read(java_source_file)
|
82
|
-
File.open(java_source_file, 'w'){|f| f << java_source.gsub(
|
79
|
+
File.open(java_source_file, 'w'){|f| f << java_source.gsub(/^(public class .*ArrayAdapter) (.*ArrayAdapter)/, '\1<T>\2<T>').gsub(/T.class/, 'Object.class')}
|
80
|
+
# EMXIF
|
83
81
|
|
84
|
-
|
85
|
-
|
82
|
+
assert File.exists?('src/ruboto_array_adapter.rb')
|
83
|
+
assert File.exists?('test/src/ruboto_array_adapter_test.rb')
|
84
|
+
|
85
|
+
File.open('src/ruboto_test_app_activity.rb', 'w'){|f| f << <<EOF}
|
86
|
+
require 'ruboto/activity'
|
87
|
+
require 'ruboto/util/stack'
|
88
|
+
require 'ruboto/widget'
|
86
89
|
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
90
|
+
ruboto_import_widgets :LinearLayout, :ListView, :TextView
|
91
|
+
|
92
|
+
class RubotoTestAppActivity
|
93
|
+
def on_create(bundle)
|
94
|
+
super
|
95
|
+
set_title 'ListView Example'
|
96
|
+
|
97
|
+
records = [{:text1 => 'First row'}, {:image => resources.get_drawable($package.R::drawable::get_ruboto_core), :text1 => 'Second row'}, 'Third row']
|
98
|
+
adapter = $package.RubotoArrayAdapter.new(self, $package.R::layout::list_item, AndroidIds::text1, records)
|
99
|
+
puts "adapter: \#{adapter.inspect}"
|
100
|
+
self.content_view =
|
101
|
+
linear_layout :orientation => :vertical do
|
102
|
+
@text_view = text_view :text => 'What hath Matz wrought?', :id => 42, :width => :match_parent,
|
103
|
+
:gravity => :center, :text_size => 48.0
|
104
|
+
list_view :adapter => adapter, :id => 43,
|
105
|
+
:on_item_click_listener => proc{|parent, view, position, id| @text_view.text = 'List item clicked!'}
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
98
109
|
EOF
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
110
|
+
|
111
|
+
File.open('test/src/ruboto_test_app_activity_test.rb', 'w'){|f| f << <<EOF}
|
112
|
+
activity Java::org.ruboto.test_app.RubotoTestAppActivity
|
113
|
+
|
114
|
+
setup do |activity|
|
115
|
+
start = Time.now
|
116
|
+
loop do
|
117
|
+
@text_view = activity.findViewById(42)
|
118
|
+
@list_view = activity.findViewById(43)
|
119
|
+
break if (@text_view && @list_view && @list_view.adapter) || (Time.now - start > 60)
|
120
|
+
puts "Waiting for adapter: \#{@list_view && @list_view.adapter.inspect}"
|
121
|
+
sleep 1
|
122
|
+
end
|
123
|
+
assert @text_view
|
124
|
+
assert @list_view
|
125
|
+
assert @list_view.adapter
|
126
|
+
end
|
127
|
+
|
128
|
+
test('Item click changes text') do |activity|
|
129
|
+
text_view = activity.findViewById(42)
|
130
|
+
list_view = activity.findViewById(43)
|
131
|
+
list_view.perform_item_click(list_view.adapter.get_view(1, nil, nil), 1, 1)
|
132
|
+
assert_equal 'List item clicked!', text_view.text
|
133
|
+
end
|
134
|
+
EOF
|
135
|
+
|
136
|
+
File.open('src/ruboto_array_adapter.rb', 'w'){|f| f << <<EOF}
|
137
|
+
class Java::AndroidWidget::ArrayAdapter
|
138
|
+
field_reader :mResource, :mFieldId
|
139
|
+
end
|
140
|
+
|
141
|
+
class RubotoArrayAdapter
|
142
|
+
import android.content.Context
|
143
|
+
|
144
|
+
def get_view(position, convert_view, parent)
|
145
|
+
puts "IN get_view!!!"
|
146
|
+
@inflater = context.getSystemService(Context::LAYOUT_INFLATER_SERVICE) unless @inflater
|
147
|
+
if convert_view
|
148
|
+
row = convert_view
|
149
|
+
row.findViewById(Ruboto::Id.image).image_drawable = nil
|
150
|
+
row.findViewById(AndroidIds.text1).text = nil
|
151
|
+
else
|
152
|
+
row = @inflater.inflate(mResource, nil)
|
153
|
+
end
|
154
|
+
|
155
|
+
model = get_item position
|
156
|
+
case model
|
157
|
+
when Hash
|
158
|
+
model.each do |field, value|
|
159
|
+
begin
|
160
|
+
field_id = Ruboto::Id.respond_to?(field) && Ruboto::Id.send(field) ||
|
161
|
+
AndroidIds.respond_to?(field) && AndroidIds.send(field)
|
162
|
+
field_view = row.findViewById(field_id)
|
163
|
+
case value
|
164
|
+
when String
|
165
|
+
field_view.text = value
|
166
|
+
when android.graphics.drawable.Drawable
|
167
|
+
field_view.image_drawable = value
|
168
|
+
else
|
169
|
+
raise "Unknown View type: \#{value.inspect}"
|
170
|
+
end
|
171
|
+
rescue Exception
|
172
|
+
puts "Exception setting list item value: \#$!"
|
173
|
+
puts $!.backtrace.join("\n")
|
174
|
+
end
|
175
|
+
end
|
176
|
+
else
|
177
|
+
row.findViewById(mFieldId).text = model.to_s
|
178
|
+
end
|
179
|
+
|
180
|
+
row
|
181
|
+
rescue Exception
|
182
|
+
puts "Exception getting list item view: \#$!"
|
183
|
+
puts $!.backtrace.join("\n")
|
184
|
+
convert_view
|
185
|
+
end
|
186
|
+
|
187
|
+
def getView(position, convert_view, parent)
|
188
|
+
puts "IN get_view!!!"
|
189
|
+
get_view(position, convert_view, parent)
|
190
|
+
end
|
191
|
+
|
192
|
+
end
|
193
|
+
EOF
|
194
|
+
|
195
|
+
File.open('res/layout/list_item.xml', 'w'){|f| f << <<EOF}
|
196
|
+
<?xml version="1.0" encoding="utf-8"?>
|
197
|
+
<LinearLayout
|
198
|
+
xmlns:android="http://schemas.android.com/apk/res/android"
|
199
|
+
android:orientation="horizontal"
|
200
|
+
android:layout_width="fill_parent"
|
201
|
+
android:layout_height="wrap_content"
|
202
|
+
android:background="#ffffff"
|
203
|
+
>
|
204
|
+
<TextView
|
205
|
+
android:id="@android:id/text1"
|
206
|
+
android:textAppearance="?android:attr/textAppearanceLarge"
|
207
|
+
android:gravity="left"
|
208
|
+
android:layout_weight="1"
|
209
|
+
android:layout_width="wrap_content"
|
210
|
+
android:layout_height="?android:attr/listPreferredItemHeight"
|
211
|
+
android:textColor="#000000"
|
212
|
+
/>
|
213
|
+
<ImageView
|
214
|
+
android:id="@+id/image"
|
215
|
+
android:gravity="right"
|
216
|
+
android:layout_width="wrap_content"
|
217
|
+
android:layout_height="wrap_content"
|
218
|
+
/>
|
219
|
+
</LinearLayout>
|
220
|
+
EOF
|
221
|
+
|
222
|
+
end
|
223
|
+
|
224
|
+
run_app_tests
|
225
|
+
end
|
226
|
+
|
227
|
+
def test_gen_jruby
|
228
|
+
Dir.chdir APP_DIR do
|
229
|
+
system "#{RUBOTO_CMD} gen jruby"
|
230
|
+
assert_equal 0, $?.exitstatus
|
231
|
+
assert File.exists?("libs/jruby-core-#{JRUBY_JARS_VERSION}.jar")
|
232
|
+
assert File.exists?("libs/jruby-stdlib-#{JRUBY_JARS_VERSION}.jar")
|
105
233
|
end
|
106
234
|
end
|
107
235
|
|
data/test/service_test.rb
CHANGED
@@ -25,9 +25,8 @@ require 'ruboto/widget'
|
|
25
25
|
ruboto_import_widgets :Button, :LinearLayout, :TextView
|
26
26
|
|
27
27
|
class RubotoTestAppActivity
|
28
|
-
include Ruboto::Activity
|
29
|
-
|
30
28
|
def on_create(bundle)
|
29
|
+
super
|
31
30
|
$ruboto_test_app_activity = self
|
32
31
|
set_title 'Domo arigato, Mr Ruboto!'
|
33
32
|
|
@@ -0,0 +1,87 @@
|
|
1
|
+
require File.expand_path("test_helper", File.dirname(__FILE__))
|
2
|
+
|
3
|
+
# FIXME(uwe): Remove check when we stop supporting JRuby older than 1.7.0.rc1
|
4
|
+
if RubotoTest::JRUBY_JARS_VERSION >= Gem::Version.new('1.7.0.rc1')
|
5
|
+
|
6
|
+
require 'bigdecimal'
|
7
|
+
require 'test/app_test_methods'
|
8
|
+
|
9
|
+
class SqldroidTest < Test::Unit::TestCase
|
10
|
+
def setup
|
11
|
+
generate_app :bundle => :sqldroid
|
12
|
+
end
|
13
|
+
|
14
|
+
def teardown
|
15
|
+
cleanup_app
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_sqldroid
|
19
|
+
Dir.chdir APP_DIR do
|
20
|
+
File.open('src/ruboto_test_app_activity.rb', 'w'){|f| f << <<EOF}
|
21
|
+
require 'ruboto/activity'
|
22
|
+
require 'ruboto/widget'
|
23
|
+
require 'ruboto/generate'
|
24
|
+
require 'sqldroid'
|
25
|
+
|
26
|
+
ruboto_import_widgets :LinearLayout, :ListView, :TextView
|
27
|
+
|
28
|
+
ruboto_generate("android.widget.ArrayAdapter" => $package_name + ".MyArrayAdapter")
|
29
|
+
|
30
|
+
class RubotoTestAppActivity
|
31
|
+
def on_create(bundle)
|
32
|
+
super
|
33
|
+
setTitle File.basename(__FILE__).chomp('_activity.rb').split('_').map { |s| "\#{s[0..0].upcase}\#{s[1..-1]}" }.join(' ')
|
34
|
+
|
35
|
+
adapter = MyArrayAdapter.new(self, android.R.layout.simple_list_item_1 , AndroidIds::text1, ['Record one', 'Record two'])
|
36
|
+
adapter.initialize_ruboto_callbacks do
|
37
|
+
def get_view(position, convert_view, parent)
|
38
|
+
puts "IN get_view!!!"
|
39
|
+
@inflater ||= context.getSystemService(Context::LAYOUT_INFLATER_SERVICE)
|
40
|
+
row = convert_view ? convert_view : @inflater.inflate(mResource, nil)
|
41
|
+
row.findViewById(mFieldId).text = get_item(position)
|
42
|
+
row
|
43
|
+
rescue Exception
|
44
|
+
puts "Exception getting list item view: \#$!"
|
45
|
+
puts $!.backtrace.join("\n")
|
46
|
+
convert_view
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
self.content_view =
|
51
|
+
linear_layout :orientation => LinearLayout::VERTICAL do
|
52
|
+
@text_view_margins = text_view :text => 'What hath Matz wrought?', :id => 42
|
53
|
+
@list_view = list_view :adapter => adapter, :id => 43
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
EOF
|
58
|
+
|
59
|
+
File.open('test/src/ruboto_test_app_activity_test.rb', 'w'){|f| f << <<EOF}
|
60
|
+
activity Java::org.ruboto.test_app.RubotoTestAppActivity
|
61
|
+
|
62
|
+
setup do |activity|
|
63
|
+
start = Time.now
|
64
|
+
loop do
|
65
|
+
@text_view = activity.findViewById(42)
|
66
|
+
@list_view = activity.findViewById(43)
|
67
|
+
break if (@text_view && @list_view) || (Time.now - start > 60)
|
68
|
+
sleep 1
|
69
|
+
end
|
70
|
+
assert @text_view
|
71
|
+
assert @list_view
|
72
|
+
end
|
73
|
+
|
74
|
+
test("activity starts") do |activity|
|
75
|
+
assert true
|
76
|
+
end
|
77
|
+
EOF
|
78
|
+
|
79
|
+
end
|
80
|
+
|
81
|
+
run_app_tests
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
85
|
+
|
86
|
+
end
|
87
|
+
# EMXIF
|
data/test/test_helper.rb
CHANGED
@@ -111,7 +111,7 @@ module RubotoTest
|
|
111
111
|
else
|
112
112
|
gem_spec = Gem.searcher.find('jruby-jars')
|
113
113
|
end
|
114
|
-
#
|
114
|
+
# EMXIF
|
115
115
|
|
116
116
|
raise StandardError.new("Can't find Gem specification jruby-jars.") unless gem_spec
|
117
117
|
JRUBY_JARS_VERSION = gem_spec.version
|
@@ -159,6 +159,7 @@ class Test::Unit::TestCase
|
|
159
159
|
update = options.delete(:update) || false
|
160
160
|
excluded_stdlibs = options.delete(:excluded_stdlibs)
|
161
161
|
standalone = options.delete(:standalone) || !!excluded_stdlibs || ENV['RUBOTO_PLATFORM'] == 'STANDALONE'
|
162
|
+
bundle = options.delete(:bundle)
|
162
163
|
raise "Unknown options: #{options.inspect}" unless options.empty?
|
163
164
|
Dir.mkdir TMP_DIR unless File.exists? TMP_DIR
|
164
165
|
|
@@ -198,10 +199,11 @@ class Test::Unit::TestCase
|
|
198
199
|
FileUtils.rm_rf APP_DIR
|
199
200
|
raise "gen app failed with return code #$?"
|
200
201
|
end
|
201
|
-
|
202
|
-
|
202
|
+
Dir.chdir APP_DIR do
|
203
|
+
write_gemfile(bundle) if bundle
|
204
|
+
if standalone
|
203
205
|
exclude_stdlibs(excluded_stdlibs) if excluded_stdlibs
|
204
|
-
system "#{RUBOTO_CMD}
|
206
|
+
system "#{RUBOTO_CMD} gen jruby"
|
205
207
|
raise "update jruby failed with return code #$?" if $? != 0
|
206
208
|
end
|
207
209
|
end
|
@@ -209,13 +211,13 @@ class Test::Unit::TestCase
|
|
209
211
|
|
210
212
|
# FIXME(uwe): Installation with dexmaker fails on Android < 4.0.3 due to complex interface structure
|
211
213
|
# Fixme(uwe): Remove when solved
|
212
|
-
if standalone && ANDROID_OS < 15
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
end
|
218
|
-
#
|
214
|
+
#if standalone && ANDROID_OS < 15
|
215
|
+
# Dir.chdir APP_DIR do
|
216
|
+
# puts "Removing dexmaker jar for android-#{ANDROID_OS}"
|
217
|
+
# FileUtils.rm(Dir['libs/dexmaker*.jar'])
|
218
|
+
# end
|
219
|
+
#end
|
220
|
+
# EMXIF
|
219
221
|
|
220
222
|
unless example && !update
|
221
223
|
Dir.chdir APP_DIR do
|
@@ -266,7 +268,7 @@ class Test::Unit::TestCase
|
|
266
268
|
break if retries >= 3
|
267
269
|
puts "Retrying (#{retries})."
|
268
270
|
end
|
269
|
-
#
|
271
|
+
# EMXIF
|
270
272
|
|
271
273
|
assert_equal 0, $?, "tests failed with return code #$?"
|
272
274
|
end
|
@@ -293,4 +295,9 @@ class Test::Unit::TestCase
|
|
293
295
|
File.open('ruboto.yml', 'w') { |f| f << YAML.dump({:excluded_stdlibs => excluded_stdlibs}) }
|
294
296
|
end
|
295
297
|
|
298
|
+
def write_gemfile(bundle)
|
299
|
+
puts "Adding Gemfile.apk: #{[*bundle].join(' ')}"
|
300
|
+
File.open('Gemfile.apk', 'w') { |f| f << "source :rubygems\n\ngem 'sqldroid'\n" }
|
301
|
+
end
|
302
|
+
|
296
303
|
end
|
data/test/update_test_methods.rb
CHANGED
@@ -14,52 +14,34 @@ module UpdateTestMethods
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def test_broadcast_receiver
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
assert File.exists? test_file
|
28
|
-
|
29
|
-
# FIXME(uwe): NOOP?
|
30
|
-
source = File.read(test_file)
|
31
|
-
File.open(test_file, 'w'){|f| f << source}
|
32
|
-
|
33
|
-
update_app
|
34
|
-
end
|
35
|
-
run_app_tests
|
17
|
+
Dir.chdir APP_DIR do
|
18
|
+
puts "Adding a broadcast receiver"
|
19
|
+
install_ruboto_gem @old_ruboto_version
|
20
|
+
system "ruboto _#{@old_ruboto_version}_ gen class BroadcastReceiver --name DummyReceiver"
|
21
|
+
fail "Creation of broadcast receiver failed" if $? != 0
|
22
|
+
assert File.exists? 'src/org/ruboto/test_app/DummyReceiver.java'
|
23
|
+
assert File.exists? 'src/dummy_receiver.rb'
|
24
|
+
test_file = 'test/src/dummy_receiver_test.rb'
|
25
|
+
assert File.exists? test_file
|
26
|
+
update_app
|
36
27
|
end
|
37
|
-
|
28
|
+
run_app_tests
|
38
29
|
end
|
39
30
|
|
40
31
|
def test_broadcast_receiver_updated_twice
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
# FIXME(uwe): NOOP?
|
54
|
-
source = File.read(test_file)
|
55
|
-
File.open(test_file, 'w'){|f| f << source}
|
56
|
-
|
57
|
-
update_app
|
58
|
-
update_app
|
59
|
-
end
|
60
|
-
run_app_tests
|
32
|
+
Dir.chdir APP_DIR do
|
33
|
+
puts "Adding a broadcast receiver"
|
34
|
+
install_ruboto_gem @old_ruboto_version
|
35
|
+
system "ruboto _#{@old_ruboto_version}_ gen class BroadcastReceiver --name DummyReceiver"
|
36
|
+
fail "Creation of broadcast receiver failed" if $? != 0
|
37
|
+
assert File.exists? 'src/org/ruboto/test_app/DummyReceiver.java'
|
38
|
+
assert File.exists? 'src/dummy_receiver.rb'
|
39
|
+
test_file = 'test/src/dummy_receiver_test.rb'
|
40
|
+
assert File.exists? test_file
|
41
|
+
update_app
|
42
|
+
update_app
|
61
43
|
end
|
62
|
-
|
44
|
+
run_app_tests
|
63
45
|
end
|
64
46
|
|
65
47
|
def test_subclass_is_updated
|
@@ -69,10 +51,13 @@ module UpdateTestMethods
|
|
69
51
|
system "ruboto _#{@old_ruboto_version}_ gen subclass android.database.sqlite.SQLiteOpenHelper --name MyDatabaseHelper --method_base on"
|
70
52
|
fail "Creation of subclass failed" if $? != 0
|
71
53
|
assert File.exists? 'src/org/ruboto/test_app/MyDatabaseHelper.java'
|
72
|
-
|
73
|
-
|
74
|
-
|
54
|
+
if Gem::Version.new(@old_ruboto_version) >= Gem::Version.new('0.8.1.rc.0')
|
55
|
+
assert File.exists? 'src/my_database_helper.rb'
|
56
|
+
assert File.exists? 'test/src/my_database_helper_test.rb'
|
57
|
+
end
|
75
58
|
update_app
|
59
|
+
assert File.exists? 'src/my_database_helper.rb'
|
60
|
+
assert File.exists? 'test/src/my_database_helper_test.rb'
|
76
61
|
system 'rake debug'
|
77
62
|
assert_equal 0, $?
|
78
63
|
end
|