Skip to content

Commit e9d882a

Browse files
author
Unity Ads Travis
committed
Release 2.1.1
1 parent 710c58a commit e9d882a

32 files changed

+1084
-317
lines changed

app/build.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@ apply plugin: 'com.android.application'
22

33
android {
44
compileSdkVersion 25
5-
buildToolsVersion '25.0.2'
5+
buildToolsVersion '25.0.3'
66

77
defaultConfig {
88
applicationId "com.unity3d.ads.example"
99
minSdkVersion 9
1010
targetSdkVersion 23
11-
versionCode = 2100
12-
versionName = "2.1.0"
11+
versionCode = 2101
12+
versionName = "2.1.1"
1313
}
1414
buildTypes {
1515
release {
@@ -21,7 +21,7 @@ android {
2121

2222
dependencies {
2323
compile fileTree(dir: 'libs', include: ['*.jar'])
24-
compile 'com.android.support:appcompat-v7:25.2.0'
24+
compile 'com.android.support:appcompat-v7:25.3.1'
2525
debugCompile project(path: ':lib', configuration: "debug")
2626
releaseCompile project(path: ':lib', configuration: "release")
2727
}

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ buildscript {
44
jcenter()
55
}
66
dependencies {
7-
classpath 'com.android.tools.build:gradle:2.3.0'
7+
classpath 'com.android.tools.build:gradle:2.3.3'
88

99
// NOTE: Do not place your application dependencies here; they belong
1010
// in the individual module build.gradle files

lib/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apply plugin: 'com.android.library'
22

33
android {
44
compileSdkVersion 25
5-
buildToolsVersion '25.0.2'
5+
buildToolsVersion '25.0.3'
66
com.android.ddmlib.DdmPreferences.setLogLevel("verbose")
77
com.android.ddmlib.DdmPreferences.setTimeOut(10 * 60000)
88

@@ -12,8 +12,8 @@ android {
1212
defaultConfig {
1313
minSdkVersion 9
1414
targetSdkVersion 23
15-
versionCode = 2100
16-
versionName = "2.1.0"
15+
versionCode = 2101
16+
versionName = "2.1.1"
1717

1818
setProperty("archivesBaseName", "unity-ads")
1919

lib/src/androidTest/java/com/unity3d/ads/test/UnitTestSuite.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
WebViewBridgeInterfaceTest.class,
3636
WebViewBridgeTest.class,
3737
WebViewCallbackTest.class,
38-
LifecycleListenerTest.class
38+
LifecycleListenerTest.class,
39+
VolumeChangeTest.class,
40+
UtilitiesTest.class
3941
})
4042
public class UnitTestSuite {}

lib/src/androidTest/java/com/unity3d/ads/test/unit/LifecycleListenerTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ public void setup () {
4141
@After
4242
public void teardown () {
4343
ClientProperties.setActivity(null);
44-
WebViewApp.setCurrentApp(null);
4544

4645
EVENTS = new ArrayList<>();
4746
EVENT_PARAMS = new ArrayList<>();

lib/src/androidTest/java/com/unity3d/ads/test/unit/MetaDataTest.java

Lines changed: 178 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,24 @@
33
import android.support.test.InstrumentationRegistry;
44
import android.support.test.runner.AndroidJUnit4;
55

6+
import com.unity3d.ads.device.Storage;
67
import com.unity3d.ads.device.StorageManager;
8+
import com.unity3d.ads.metadata.InAppPurchaseMetaData;
79
import com.unity3d.ads.metadata.MediationMetaData;
810
import com.unity3d.ads.metadata.MetaData;
911
import com.unity3d.ads.metadata.PlayerMetaData;
1012
import com.unity3d.ads.properties.ClientProperties;
1113
import com.unity3d.ads.webview.WebViewApp;
1214

15+
import org.json.JSONArray;
16+
import org.json.JSONObject;
1317
import org.junit.After;
1418
import org.junit.BeforeClass;
1519
import org.junit.Test;
1620
import org.junit.runner.RunWith;
1721
import static org.junit.Assert.*;
1822

23+
import java.util.ArrayList;
1924
import java.util.HashMap;
2025

2126
@RunWith(AndroidJUnit4.class)
@@ -39,33 +44,31 @@ public void testMediationMetaData () throws Exception {
3944
metaData.setOrdinal(1);
4045
metaData.commit();
4146

42-
HashMap<String, Object> params = (HashMap<String, Object>)((MetaDataWebApp)WebViewApp.getCurrentApp()).PARAMS[1];
47+
JSONObject values = (JSONObject)((MetaDataWebApp)WebViewApp.getCurrentApp()).PARAMS[1];
48+
JSONObject mediationObject = values.getJSONObject("mediation");
4349

44-
assertEquals("Metadata doesn't have correct amount of values", params.size(), 2 * 2);
50+
JSONObject nameObject = mediationObject.getJSONObject("name");
51+
assertEquals("Incorrect name value", nameObject.getString("value"), "MediationNetwork");
52+
assertNotNull("Timestamp for name is null", nameObject.getLong("ts"));
4553

46-
HashMap<String, Object> metadataEntries = (HashMap<String, Object>)metaData.getEntries();
47-
for (String k : params.keySet()) {
48-
assertTrue("Metadata doesn't contain key: " + k, metadataEntries.containsKey(k));
49-
assertEquals("Metadata key " + k + " doesn't contain value: " + params.get(k), metadataEntries.get(k), params.get(k));
50-
}
54+
JSONObject ordinalObject = mediationObject.getJSONObject("ordinal");
55+
assertEquals("Incorrect ordinal value", ordinalObject.getInt("value"), 1);
56+
assertNotNull("Timestamp for ordinal is null", ordinalObject.getLong("ts"));
5157
}
5258

5359
@Test
5460
public void testPlayerMetaData () throws Exception {
5561
WebViewApp.setCurrentApp(new MetaDataWebApp());
5662
PlayerMetaData metaData = new PlayerMetaData(ClientProperties.getApplicationContext());
5763
metaData.setServerId("bulbasaur");
58-
metaData.commit();
59-
60-
HashMap<String, Object> params = (HashMap<String, Object>)((MetaDataWebApp)WebViewApp.getCurrentApp()).PARAMS[1];
6164

62-
assertEquals("Metadata doesn't have correct amount of values", params.size(), 1 * 2);
65+
metaData.commit();
66+
JSONObject values = (JSONObject)((MetaDataWebApp)WebViewApp.getCurrentApp()).PARAMS[1];
67+
JSONObject playerObject = values.getJSONObject("player");
68+
JSONObject serverIdObject = playerObject.getJSONObject("server_id");
6369

64-
HashMap<String, Object> metadataEntries = (HashMap<String, Object>)metaData.getEntries();
65-
for (String k : params.keySet()) {
66-
assertTrue("Metadata doesn't contain key: " + k, metadataEntries.containsKey(k));
67-
assertEquals("Metadata key " + k + " doesn't contain value: " + params.get(k), metadataEntries.get(k), params.get(k));
68-
}
70+
assertEquals("Incorrect server_id value", serverIdObject.getString("value"), "bulbasaur");
71+
assertNotNull("Timestamp for server_id is null", serverIdObject.getLong("ts"));
6972
}
7073

7174
@Test
@@ -74,18 +77,100 @@ public void testMetaDataBaseClassNoCategory () throws Exception {
7477
MetaData metaData = new MetaData(ClientProperties.getApplicationContext());
7578
metaData.set("test.one", 1);
7679
metaData.set("test.two", "2");
77-
metaData.set("test.three", 3.33f);
80+
metaData.set("test.three", 123.123);
81+
metaData.set("testNumber", 12345);
7882
metaData.commit();
7983

80-
HashMap<String, Object> params = (HashMap<String, Object>)((MetaDataWebApp)WebViewApp.getCurrentApp()).PARAMS[1];
84+
JSONObject values = (JSONObject)((MetaDataWebApp)WebViewApp.getCurrentApp()).PARAMS[1];
85+
JSONObject testObject = values.getJSONObject("test");
8186

82-
assertEquals("Metadata doesn't have correct amount of values", params.size(), 3 * 2);
87+
JSONObject oneObject = testObject.getJSONObject("one");
88+
assertEquals("Incorrect 'one' value", 1, oneObject.getInt("value"));
89+
assertNotNull("Timestamp for 'one' is null", oneObject.getLong("ts"));
8390

84-
HashMap<String, Object> metadataEntries = (HashMap<String, Object>)metaData.getEntries();
85-
for (String k : params.keySet()) {
86-
assertTrue("Metadata doesn't contain key: " + k, metadataEntries.containsKey(k));
87-
assertEquals("Metadata key " + k + " doesn't contain value: " + params.get(k), metadataEntries.get(k), params.get(k));
88-
}
91+
JSONObject twoObject = testObject.getJSONObject("two");
92+
assertEquals("Incorrect 'two' value", "2", twoObject.getString("value"));
93+
assertNotNull("Timestamp for 'two' is null", twoObject.getLong("ts"));
94+
95+
JSONObject threeObject = testObject.getJSONObject("three");
96+
assertEquals("Incorrect 'three' value", threeObject.getDouble("value"), 123.123, 0);
97+
assertNotNull("Timestamp for 'three' is null", threeObject.getLong("ts"));
98+
99+
JSONObject testNumberObject = values.getJSONObject("testNumber");
100+
assertEquals("Incorrect 'testNumber' value", 12345, testNumberObject.getInt("value"));
101+
assertNotNull("Timestamp for 'testNumber' is null", testNumberObject.getLong("ts"));
102+
103+
MetaData metaData2 = new MetaData(ClientProperties.getApplicationContext());
104+
metaData2.set("testNumber", 23456);
105+
metaData2.commit();
106+
107+
JSONObject values2 = (JSONObject)((MetaDataWebApp)WebViewApp.getCurrentApp()).PARAMS[1];
108+
JSONObject testNumberObject2 = values2.getJSONObject("testNumber");
109+
assertEquals("Incorrect 'testNumber' second set value", 23456, testNumberObject2.getInt("value"));
110+
assertNotNull("Timestamp for 'testNumber' second set is null", testNumberObject2.getLong("ts"));
111+
112+
Storage storage = StorageManager.getStorage(StorageManager.StorageType.PUBLIC);
113+
storage.clearData();
114+
storage.readStorage();
115+
116+
JSONObject keysFromStorage = (JSONObject)storage.get("test");
117+
JSONObject storageOneObject = keysFromStorage.getJSONObject("one");
118+
119+
assertEquals("Incorrect 'one' value", storageOneObject.getInt("value"), 1);
120+
assertNotNull("Timestamp for 'one' is null", storageOneObject.getLong("ts"));
121+
122+
JSONObject storageTwoObject = keysFromStorage.getJSONObject("two");
123+
assertEquals("Incorrect 'two' value", storageTwoObject.getString("value"), "2");
124+
assertNotNull("Timestamp for 'two' is null", storageTwoObject.getLong("ts"));
125+
126+
JSONObject storageThreeObject = keysFromStorage.getJSONObject("three");
127+
assertEquals("Incorrect 'three' value", storageThreeObject.getDouble("value"), 123.123, 0);
128+
assertNotNull("Timestamp for 'three' is null", storageThreeObject.getLong("ts"));
129+
130+
JSONObject storageTestNumberObject2 = (JSONObject)storage.get("testNumber");
131+
assertEquals("Incorrect 'testNumber' second set value", 23456, storageTestNumberObject2.getInt("value"));
132+
assertNotNull("Timestamp for 'testNumber' second set is null", storageTestNumberObject2.getLong("ts"));
133+
}
134+
135+
@Test
136+
public void testMetaDataBaseClassNoCategoryDiskWrite () throws Exception {
137+
MetaData metaData = new MetaData(ClientProperties.getApplicationContext());
138+
metaData.set("test.one", 1);
139+
metaData.set("test.two", "2");
140+
metaData.set("test.three", 123.123);
141+
metaData.set("testNumber", 12345);
142+
metaData.commit();
143+
144+
MetaData metaData2 = new MetaData(ClientProperties.getApplicationContext());
145+
metaData2.set("testNumber", 23456);
146+
metaData2.set("test.four", 4);
147+
metaData2.commit();
148+
149+
Storage storage = StorageManager.getStorage(StorageManager.StorageType.PUBLIC);
150+
storage.clearData();
151+
storage.readStorage();
152+
153+
JSONObject keysFromStorage = (JSONObject)storage.get("test");
154+
155+
JSONObject storageFourObject = keysFromStorage.getJSONObject("four");
156+
assertEquals("Incorrect 'four' value", storageFourObject.getInt("value"), 4);
157+
assertNotNull("Timestamp for 'three' is null", storageFourObject.getLong("ts"));
158+
159+
JSONObject storageOneObject = keysFromStorage.getJSONObject("one");
160+
assertEquals("Incorrect 'one' value", storageOneObject.getInt("value"), 1);
161+
assertNotNull("Timestamp for 'one' is null", storageOneObject.getLong("ts"));
162+
163+
JSONObject storageTwoObject = keysFromStorage.getJSONObject("two");
164+
assertEquals("Incorrect 'two' value", storageTwoObject.getString("value"), "2");
165+
assertNotNull("Timestamp for 'two' is null", storageTwoObject.getLong("ts"));
166+
167+
JSONObject storageThreeObject = keysFromStorage.getJSONObject("three");
168+
assertEquals("Incorrect 'three' value", storageThreeObject.getDouble("value"), 123.123, 0);
169+
assertNotNull("Timestamp for 'three' is null", storageThreeObject.getLong("ts"));
170+
171+
JSONObject storageTestNumberObject2 = (JSONObject)storage.get("testNumber");
172+
assertEquals("Incorrect 'testNumber' second set value", 23456, storageTestNumberObject2.getInt("value"));
173+
assertNotNull("Timestamp for 'testNumber' second set is null", storageTestNumberObject2.getLong("ts"));
89174
}
90175

91176
@Test
@@ -95,18 +180,41 @@ public void testMetaDataBaseClassWithCategory () throws Exception {
95180
metaData.setCategory("test");
96181
metaData.set("one", 1);
97182
metaData.set("two", "2");
98-
metaData.set("three", 3.33f);
183+
metaData.set("three", 123.123);
99184
metaData.commit();
100185

101-
HashMap<String, Object> params = (HashMap<String, Object>)((MetaDataWebApp)WebViewApp.getCurrentApp()).PARAMS[1];
186+
JSONObject values = (JSONObject)((MetaDataWebApp)WebViewApp.getCurrentApp()).PARAMS[1];
187+
JSONObject testObject = values.getJSONObject("test");
102188

103-
assertEquals("Metadata doesn't have correct amount of values", params.size(), 3 * 2);
189+
JSONObject oneObject = testObject.getJSONObject("one");
190+
assertEquals("Incorrect 'one' value", oneObject.getInt("value"), 1);
191+
assertNotNull("Timestamp for 'one' is null", oneObject.getLong("ts"));
104192

105-
HashMap<String, Object> metadataEntries = (HashMap<String, Object>)metaData.getEntries();
106-
for (String k : params.keySet()) {
107-
assertTrue("Metadata doesn't contain key: " + k, metadataEntries.containsKey(k));
108-
assertEquals("Metadata key " + k + " doesn't contain value: " + params.get(k), metadataEntries.get(k), params.get(k));
109-
}
193+
JSONObject twoObject = testObject.getJSONObject("two");
194+
assertEquals("Incorrect 'two' value", twoObject.getString("value"), "2");
195+
assertNotNull("Timestamp for 'two' is null", twoObject.getLong("ts"));
196+
197+
JSONObject threeObject = testObject.getJSONObject("three");
198+
assertEquals("Incorrect 'three' value", threeObject.getDouble("value"), 123.123, 0);
199+
assertNotNull("Timestamp for 'three' is null", threeObject.getLong("ts"));
200+
201+
Storage storage = StorageManager.getStorage(StorageManager.StorageType.PUBLIC);
202+
storage.clearData();
203+
storage.readStorage();
204+
205+
JSONObject keysFromStorage = (JSONObject)storage.get("test");
206+
JSONObject storageOneObject = keysFromStorage.getJSONObject("one");
207+
208+
assertEquals("Incorrect 'one' value", storageOneObject.getInt("value"), 1);
209+
assertNotNull("Timestamp for 'one' is null", storageOneObject.getLong("ts"));
210+
211+
JSONObject storageTwoObject = keysFromStorage.getJSONObject("two");
212+
assertEquals("Incorrect 'two' value", storageTwoObject.getString("value"), "2");
213+
assertNotNull("Timestamp for 'two' is null", storageTwoObject.getLong("ts"));
214+
215+
JSONObject storageThreeObject = keysFromStorage.getJSONObject("three");
216+
assertEquals("Incorrect 'three' value", storageThreeObject.getDouble("value"), 123.123, 0);
217+
assertNotNull("Timestamp for 'three' is null", storageThreeObject.getLong("ts"));
110218
}
111219

112220
@Test
@@ -116,9 +224,46 @@ public void testCommitWithoutMetaDataSet () throws Exception {
116224
metaData.setCategory("test");
117225
metaData.commit();
118226

119-
assertNull("Entries should still be null", metaData.getEntries());
227+
assertNull("Entries should still be null", metaData.getData());
120228
}
121229

230+
@Test
231+
public void testInAppPurhcaseMetaData () throws Exception {
232+
WebViewApp.setCurrentApp(new MetaDataWebApp());
233+
InAppPurchaseMetaData metaData = new InAppPurchaseMetaData(ClientProperties.getApplicationContext());
234+
metaData.setCurrency("EUR");
235+
metaData.setProductId("testProductId1");
236+
metaData.setPrice(1.25);
237+
metaData.setReceiptPurchaseData("receiptPurchaseData1");
238+
metaData.setSignature("testSignature1");
239+
metaData.commit();
240+
241+
InAppPurchaseMetaData metaData2 = new InAppPurchaseMetaData(ClientProperties.getApplicationContext());
242+
metaData2.setCurrency("USD");
243+
metaData2.setProductId("testProductId2");
244+
metaData2.setPrice(2.25);
245+
metaData2.setReceiptPurchaseData("receiptPurchaseData2");
246+
metaData2.setSignature("testSignature2");
247+
metaData2.commit();
248+
249+
JSONArray purchases = (JSONArray)((MetaDataWebApp)WebViewApp.getCurrentApp()).PARAMS[1];
250+
JSONObject purchase1 = purchases.getJSONObject(0);
251+
JSONObject purchase2 = purchases.getJSONObject(1);
252+
253+
assertEquals("Incorrect purchase1 value for currency", "EUR", purchase1.getString(InAppPurchaseMetaData.KEY_CURRENCY));
254+
assertEquals("Incorrect purchase1 value for productId", "testProductId1", purchase1.getString(InAppPurchaseMetaData.KEY_PRODUCT_ID));
255+
assertEquals("Incorrect purchase1 value for price", 1.25, purchase1.getDouble(InAppPurchaseMetaData.KEY_PRICE), 0);
256+
assertEquals("Incorrect purchase1 value for receiptPurchaseData", "receiptPurchaseData1", purchase1.getString(InAppPurchaseMetaData.KEY_RECEIPT_PURCHASE_DATA));
257+
assertEquals("Incorrect purchase1 value for signature", "testSignature1", purchase1.getString(InAppPurchaseMetaData.KEY_SIGNATURE));
258+
assertNotNull("Timestamp is null for purchase1", purchase1.getLong("ts"));
259+
260+
assertEquals("Incorrect purchase2 value for currency", "USD", purchase2.getString(InAppPurchaseMetaData.KEY_CURRENCY));
261+
assertEquals("Incorrect purchase2 value for productId", "testProductId2", purchase2.getString(InAppPurchaseMetaData.KEY_PRODUCT_ID));
262+
assertEquals("Incorrect purchase2 value for price", 2.25, purchase2.getDouble(InAppPurchaseMetaData.KEY_PRICE), 0);
263+
assertEquals("Incorrect purchase2 value for receiptPurchaseData", "receiptPurchaseData2", purchase2.getString(InAppPurchaseMetaData.KEY_RECEIPT_PURCHASE_DATA));
264+
assertEquals("Incorrect purchase2 value for signature", "testSignature2", purchase2.getString(InAppPurchaseMetaData.KEY_SIGNATURE));
265+
assertNotNull("Timestamp is null for purchase2", purchase2.getLong("ts"));
266+
}
122267

123268
private class MetaDataWebApp extends WebViewApp {
124269
public Object[] PARAMS = null;

0 commit comments

Comments
 (0)