From: Frédéric Vachon Date: Mon, 30 Jun 2014 15:28:29 +0000 (-0400) Subject: Merge branch 'master' into Bundle X-Git-Tag: v0.6.7~69^2~2 X-Git-Url: http://nitlanguage.org Merge branch 'master' into Bundle lib/android: To use UNDEFINED tests Signed-off-by: Frédéric Vachon --- e9b234f5d22fb7798b47969976953c11ce056ce4 diff --cc examples/mnit_simple/src/simple_android.nit index b045500,1f17806..b6cab0b --- a/examples/mnit_simple/src/simple_android.nit +++ b/examples/mnit_simple/src/simple_android.nit @@@ -21,7 -21,7 +21,8 @@@ en import simple import mnit_android +import android::bundle + import android::shared_preferences in "Java" `{ import android.content.Context; @@@ -31,93 -31,54 +32,135 @@@ redef class App redef fun input( ie ) do - if ie isa PointerEvent and ie.depressed then + if ie isa PointerEvent and ie.depressed then do_java_stuff + test_bundle + test_shared_preferences - end + end + return super end + fun test_bundle + do + var bundle = new Bundle(self) + + bundle["anInt"] = 1 + bundle["aFloat"] = 1.1 + bundle["aString"] = "A string" + bundle["aBool"] = true + + var int_array = new Array[Int] + var bool_array = new Array[Bool] + + var value = true + + for i in [0..5] do + int_array.add(i) + bool_array.add(value) + value = not value + end + + bundle["anArrayOfInt"] = int_array + bundle["anArrayOfBool"] = bool_array + + assert bundle.int("anInt", 0) == 1 + assert bundle.int("wrongInt", 0) == 0 + assert bundle.float("aFloat", 0.0) == 1.1 + assert bundle.float("wrongFloat", 0.0) == 0.0 + assert bundle.string("aString") == "A string" + assert bundle.string("wrongString") == null + assert bundle.bool("aBool", false) + assert bundle.bool("wrongBool", false) == false + + var int_array_test = bundle.array_of_int("anArrayOfInt") + var bool_array_test = bundle.array_of_bool("anArrayOfBool") + + value = true + + for i in [0..5] do + assert int_array_test[i] == i + assert bool_array_test[i] == value + value = not value + end + + assert bundle.size == 6 + assert bundle.has("aBool") + assert not bundle.is_empty + + bundle.remove("aString") + bundle.remove("anArrayOfBool") + + assert bundle.string("aString") == null + assert bundle.array_of_bool("anArrayOfBool") == null + + # Serializable tests + var p1 = new Point(10, 10) + bundle["aPoint"] = p1 + var p2 = bundle.deserialize("aPoint") + + assert p1.to_s == p2.to_s + + var point_array = new Array[Point] + + for i in [0..5] do point_array.add(new Point(i, i)) + + bundle["anArrayOfPoint"] = point_array + + var deserialized_point_array = bundle.deserialize_array("anArrayOfPoint") + + for i in [0..5] do + var point = new Point(i, i) + assert deserialized_point_array[i].to_s == point.to_s + end + + bundle.clear + + assert bundle.keys.is_empty + assert bundle.is_empty + end + + fun test_shared_preferences + do + # Private mode tests + var sp = new SharedPreferences.privately(self, "test") + sp.add_bool("a_boolean", true) + sp.add_float("a_float", 66.6) + sp.add_int("an_int", 666) + sp.add_int("a_second_int", 666777) + sp.add_long("a_long", 6666666666) + sp.add_string("a_string", "A string") + sp["another_int"] = 85 + sp["yet_another_string"] = "Another string" + sp.remove("a_second_int") + + # Serialized object test + var my_point = new Point(10, 10) + sp["a_point"] = my_point + var my_deserialized_point = sp.deserialize("a_point") + assert my_point.to_s == my_deserialized_point.to_s + + assert sp.bool("a_boolean", false) == true + assert sp.bool("wrong_boolean", false) == false + assert sp.float("a_float", 0.0) != 0.0 + assert sp.float("wrong_float", 0.0) == 0.0 + assert sp.int("an_int", 0) == 666 + assert sp.int("a_second_int", 0) == 0 + assert sp.long("a_long", 0) == 6666666666 + assert sp.long("wrong_long", 0) == 0 + assert sp.string("a_string", "ERROR!") == "A string" + assert sp.string("wrong_string", "ERROR!") == "ERROR!" + assert sp.long("another_int", 0) == 85 + assert sp.string("yet_another_string", "ERROR!") == "Another string" + assert sp.has("an_int") == true + assert sp.has("a_second_int") == false + + sp.clear + assert sp.all == null + + sp.destroy + end + fun do_java_stuff import native_activity in "Java" `{ // + Log (no context needed) android.util.Log.d("mnit_simple", "Java within NIT!!!");