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.
Files changed (57) hide show
  1. data/Rakefile +35 -11
  2. data/assets/rakelib/ruboto.rake +2 -0
  3. data/assets/samples/sample_activity.rb +1 -0
  4. data/assets/samples/sample_class.rb +2 -0
  5. data/assets/samples/sample_class_test.rb +1 -0
  6. data/assets/src/InheritingActivity.java +1 -1
  7. data/assets/src/InheritingBroadcastReceiver.java +2 -1
  8. data/assets/src/InheritingClass.java +15 -7
  9. data/assets/src/InheritingService.java +1 -2
  10. data/assets/src/RubotoActivity.java +20 -110
  11. data/assets/src/RubotoBroadcastReceiver.java +16 -62
  12. data/assets/src/RubotoService.java +13 -89
  13. data/assets/src/org/ruboto/EntryPointActivity.java +1 -1
  14. data/assets/src/org/ruboto/JRubyAdapter.java +23 -23
  15. data/assets/src/org/ruboto/RubotoComponent.java +8 -0
  16. data/assets/src/org/ruboto/Script.java +10 -5
  17. data/assets/src/org/ruboto/ScriptInfo.java +53 -0
  18. data/assets/src/org/ruboto/ScriptLoader.java +143 -0
  19. data/assets/src/org/ruboto/test/ActivityTest.java +15 -8
  20. data/assets/src/org/ruboto/test/InstrumentationTestRunner.java +11 -6
  21. data/assets/src/ruboto/activity.rb +43 -17
  22. data/assets/src/ruboto/base.rb +7 -1
  23. data/assets/src/ruboto/generate.rb +6 -2
  24. data/assets/src/ruboto/legacy.rb +1 -1
  25. data/assets/src/ruboto/menu.rb +4 -4
  26. data/assets/src/ruboto/widget.rb +4 -11
  27. data/lib/ruboto/commands/base.rb +21 -7
  28. data/lib/ruboto/util/build.rb +6 -3
  29. data/lib/ruboto/util/code_formatting.rb +2 -2
  30. data/lib/ruboto/util/update.rb +58 -58
  31. data/lib/ruboto/util/xml_element.rb +14 -11
  32. data/lib/ruboto/version.rb +2 -1
  33. data/test/activity/generate_activity.rb +35 -0
  34. data/test/activity/generate_activity_test.rb +17 -0
  35. data/test/activity/image_button_activity.rb +1 -0
  36. data/test/activity/image_button_and_button_activity.rb +1 -0
  37. data/test/activity/margins_activity.rb +1 -0
  38. data/test/activity/navigation_activity.rb +20 -5
  39. data/test/activity/navigation_activity_test.rb +43 -4
  40. data/test/activity/option_menu_activity.rb +1 -0
  41. data/test/activity/psych_activity.rb +2 -1
  42. data/test/activity/stack_activity.rb +1 -0
  43. data/test/activity/stack_activity_test.rb +11 -5
  44. data/test/block_def_activity/margins_activity.rb +2 -1
  45. data/test/block_def_activity/psych_activity.rb +1 -1
  46. data/test/block_def_activity/stack_activity_test.rb +1 -1
  47. data/test/handle_activity/psych_activity.rb +1 -1
  48. data/test/handle_activity/stack_activity_test.rb +17 -9
  49. data/test/minimal_app_test.rb +2 -2
  50. data/test/rake_test.rb +1 -1
  51. data/test/ruboto_gen_test.rb +162 -34
  52. data/test/service_test.rb +1 -2
  53. data/test/sqldroid_test.rb +87 -0
  54. data/test/test_helper.rb +19 -12
  55. data/test/update_test_methods.rb +29 -44
  56. data/test/view_constants_test.rb +1 -2
  57. metadata +12 -4
@@ -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' => ANDROID_TARGET < 15 ? 4.4 : 4.6, # Without dexmaker for Android < 4.0.3
21
- '1.7.0.preview2' => ANDROID_TARGET < 15 ? 4.4 : 4.6, # Without dexmaker for Android < 4.0.3
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
- # FIXME end
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
@@ -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' => ANDROID_TARGET < 15 ? 7062.0 : 7308.0,
43
- '1.7.0.preview2' => ANDROID_TARGET < 15 ? 7062.0 : 7308.0,
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 => 62.0,
49
- 10 => 66.0,
50
- 15 => 67.0,
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
- # FIXME(uwe): Add tests and definition script?
64
- # assert File.exists?('src/my_database_helper.rb')
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 test_gen_interface
70
+ def test_gen_subclass_of_array_adapter
72
71
  Dir.chdir APP_DIR do
73
- system "#{RUBOTO_CMD} gen interface java.lang.Runnable --name MyRunnable"
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/MyRunnable.java'
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(/^\}\n/, " public static void main(String[] args){new MyRunnable().run();}\n}\n")}
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
- system 'rake debug'
85
- assert_equal 0, $?
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
- File.open('src/org/ruboto/JRubyAdapter.java', 'w'){|f| f << <<EOF}
88
- package org.ruboto;
89
- public class JRubyAdapter {
90
- public static Object get(String varName){return null;}
91
- public static boolean isInitialized(){return true;}
92
- public static boolean isJRubyOneSeven(){return true;}
93
- public static boolean isJRubyPreOneSeven(){return false;}
94
- public static void put(String varName, Object value){}
95
- public static void runRubyMethod(Object receiver, String method){}
96
- public static boolean runScriptlet(String scriptlet){return false;}
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
- system 'javac -cp bin/classes -d bin/classes src/org/ruboto/JRubyAdapter.java'
100
- assert_equal 0, $?
101
- system 'javac -cp bin/classes -d bin/classes src/org/ruboto/test_app/MyRunnable.java'
102
- assert_equal 0, $?
103
- system 'java -cp bin/classes org.ruboto.test_app.MyRunnable'
104
- assert_equal 0, $?
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
- # FIXME end
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
- if standalone
202
- Dir.chdir APP_DIR do
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} update jruby --force"
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
- Dir.chdir APP_DIR do
214
- puts "Removing dexmaker jar for android-#{ANDROID_OS}"
215
- FileUtils.rm(Dir['libs/dexmaker*.jar'])
216
- end
217
- end
218
- # FIXME end
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
- # FIXME end
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
@@ -14,52 +14,34 @@ module UpdateTestMethods
14
14
  end
15
15
 
16
16
  def test_broadcast_receiver
17
- # FIXME(uwe): Remove check when we stop supporting updating from ruboto_core (Ruboto before version 0.5.2 2011-12-24)
18
- if Gem::Version.new(@old_ruboto_version) >= Gem::Version.new('0.5.2')
19
- Dir.chdir APP_DIR do
20
- puts "Adding a broadcast receiver"
21
- install_ruboto_gem @old_ruboto_version
22
- system "ruboto _#{@old_ruboto_version}_ gen class BroadcastReceiver --name DummyReceiver"
23
- fail "Creation of broadcast receiver failed" if $? != 0
24
- assert File.exists? 'src/org/ruboto/test_app/DummyReceiver.java'
25
- assert File.exists? 'src/dummy_receiver.rb'
26
- test_file = 'test/src/dummy_receiver_test.rb'
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
- # FIXME end
28
+ run_app_tests
38
29
  end
39
30
 
40
31
  def test_broadcast_receiver_updated_twice
41
- # FIXME(uwe): Remove check when we stop supporting updating from ruboto_core (Ruboto before version 0.5.2 2011-12-24)
42
- if Gem::Version.new(@old_ruboto_version) >= Gem::Version.new('0.5.2')
43
- Dir.chdir APP_DIR do
44
- puts "Adding a broadcast receiver"
45
- install_ruboto_gem @old_ruboto_version
46
- system "ruboto _#{@old_ruboto_version}_ gen class BroadcastReceiver --name DummyReceiver"
47
- fail "Creation of broadcast receiver failed" if $? != 0
48
- assert File.exists? 'src/org/ruboto/test_app/DummyReceiver.java'
49
- assert File.exists? 'src/dummy_receiver.rb'
50
- test_file = 'test/src/dummy_receiver_test.rb'
51
- assert File.exists? test_file
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
- # FIXME end
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
- # assert File.exists? 'src/my_database_helper.rb'
73
- # assert File.exists? 'test/src/my_database_helper_test.rb'
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