This commit is contained in:
Janne Nikula 2016-08-04 15:23:52 +03:00
Родитель ee9cd2f193
Коммит d4b2056756
9 изменённых файлов: 96 добавлений и 23 удалений

Просмотреть файл

@ -8,8 +8,8 @@ android {
applicationId "com.unity3d.ads.example"
minSdkVersion 9
targetSdkVersion 23
versionCode = 2000
versionName = "2.0.0-beta5"
versionCode = 2001
versionName = "2.0.0-rc1"
}
buildTypes {
release {

Просмотреть файл

@ -86,6 +86,7 @@ public class UnityAdsExample extends Activity {
SharedPreferences preferences = getSharedPreferences("Settings", MODE_PRIVATE);
gameIdEdit.setText(preferences.getString("gameId", defaultGameId));
testModeCheckbox.setChecked(true);
initializeButton.setOnClickListener(new View.OnClickListener() {
@Override
@ -236,4 +237,4 @@ public class UnityAdsExample extends Activity {
Toast.makeText(getApplicationContext(), callback + ": " + msg, Toast.LENGTH_SHORT).show();
}
}
}
}

Просмотреть файл

@ -12,8 +12,8 @@ android {
defaultConfig {
minSdkVersion 9
targetSdkVersion 23
versionCode = 2000
versionName = "2.0.0-beta5"
versionCode = 2001
versionName = "2.0.0-rc1"
setProperty("archivesBaseName", "unity-ads")

Просмотреть файл

@ -9,28 +9,31 @@ import org.junit.runners.Suite;
@Suite.SuiteClasses({
AdUnitActivityTest.class,
AdvertisingIdentifierTest.class,
InvocationTest.class,
BroadcastTest.class,
CacheTest.class,
ClientPropertiesTest.class,
ConnectivityTest.class,
DeviceTest.class,
EventIdTest.class,
EnvironmentCheckTest.class,
EventIdTest.class,
InitializeThreadTest.class,
InvocationTest.class,
MetaDataTest.class,
NativeCallbackTest.class,
PackageManagerTest.class,
PlacementTest.class,
PublicApiTest.class,
RequestTest.class,
SdkPropertiesTest.class,
StorageDiskTest.class,
StorageGeneralTest.class,
StorageMemoryTest.class,
RequestTest.class,
VideoViewTest.class,
WebRequestTest.class,
WebViewAppTest.class,
WebViewBridgeInterfaceTest.class,
WebViewBridgeTest.class,
WebViewCallbackTest.class,
PlacementTest.class,
BroadcastTest.class
WebViewCallbackTest.class
})
public class UnitTestSuite {}

Просмотреть файл

@ -400,7 +400,7 @@ public class CacheTest {
break;
case DOWNLOAD_PROGRESS:
if(REMOTE_VIDEO.equals(params[0]) && (Long)params[1] > minDownloadBytes) {
if(REMOTE_VIDEO.equals(params[0]) && (Long)params[1] > 1) {
setFlag("cancelInvoked");
Invocation invocation = new Invocation();
WebViewCallback callback = new WebViewCallback("1234", invocation.getId());
@ -416,7 +416,7 @@ public class CacheTest {
case DOWNLOAD_STOPPED:
// params: url, total bytes
if(REMOTE_VIDEO.equals(params[0]) && (Long)params[1] > minDownloadBytes) {
if(REMOTE_VIDEO.equals(params[0]) && (Long)params[1] > 1) {
setFlag("stopEventReceived");
downloadPosition = (long)params[1];
cacheCv.open();
@ -438,7 +438,7 @@ public class CacheTest {
Invocation invocation = new Invocation();
WebViewCallback callback = new WebViewCallback("1234", invocation.getId());
CacheThread.setProgressInterval(10);
CacheThread.setProgressInterval(2);
Cache.download(REMOTE_VIDEO, REMOTE_VIDEO_FILE_ID, callback);
invocation.sendInvocationCallback();

Просмотреть файл

@ -1,14 +1,20 @@
package com.unity3d.ads.test.unit;
import android.os.ConditionVariable;
import android.os.Handler;
import android.os.Looper;
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;
import android.view.ViewGroup;
import com.unity3d.ads.api.Connectivity;
import com.unity3d.ads.api.DeviceInfo;
import com.unity3d.ads.connectivity.ConnectivityEvent;
import com.unity3d.ads.connectivity.ConnectivityMonitor;
import com.unity3d.ads.connectivity.IConnectivityListener;
import com.unity3d.ads.log.DeviceLog;
import com.unity3d.ads.properties.ClientProperties;
import com.unity3d.ads.video.VideoPlayerView;
import com.unity3d.ads.webview.WebViewApp;
import com.unity3d.ads.webview.WebViewEventCategory;
import com.unity3d.ads.webview.bridge.CallbackStatus;
@ -72,28 +78,65 @@ public class ConnectivityTest {
// Make sure connectivity monitor thinks it's connected when test starts
ConnectivityMonitor.connected();
MockWebViewApp webapp = new MockWebViewApp();
final MockWebViewApp webapp = new MockWebViewApp();
WebViewApp.setCurrentApp(webapp);
WebViewApp.getCurrentApp().setWebAppLoaded(true);
Connectivity.setConnectionMonitoring(true, webapp.getCallback());
Handler handler = new Handler(Looper.getMainLooper());
ConditionVariable cv = new ConditionVariable();
handler.post(new Runnable() {
@Override
public void run() {
Connectivity.setConnectionMonitoring(true, webapp.getCallback());
webapp.getInvocation().sendInvocationCallback();
}
});
boolean success = cv.block(1000);
assertTrue("Connectivity MockWebViewApp did not respond with success callback", webapp.getCallbackInvoked());
ConnectivityMonitor.disconnected();
cv = new ConditionVariable();
handler.post(new Runnable() {
@Override
public void run() {
ConnectivityMonitor.disconnected();
}
});
success = cv.block(1000);
assertEquals("Connectivity MockWebViewApp did not get one disconnect event", 1, webapp.getDisconnectedEvents());
ConnectivityMonitor.connected();
assertEquals("Connectivity MockWebViewApp did not get one connect event", 1, webapp.getConnectedEvents());
cv = new ConditionVariable();
handler.post(new Runnable() {
@Override
public void run() {
ConnectivityMonitor.connected();
}
});
success = cv.block(1000);
assertTrue("Connectivity MockWebViewApp did not get connect event", webapp.getConnectedEvents() > 0);
}
private class MockWebViewApp extends WebViewApp {
private int _disconnectedEvents = 0;
private int _connectedEvents = 0;
boolean _callbackInvoked = false;
Invocation _invocation = null;
ConditionVariable _cv = null;
public WebViewCallback getCallback() {
Invocation invocation = new Invocation();
return new WebViewCallback("1234", invocation.getId());
_invocation = new Invocation();
return new WebViewCallback("1234", _invocation.getId());
}
public Invocation getInvocation() {
return _invocation;
}
public void setCV(ConditionVariable cv) {
_cv = cv;
}
@Override
@ -104,26 +147,43 @@ public class ConnectivityTest {
_callbackInvoked = true;
}
return super.invokeCallback(invocation);
openCVAndReset();
return true;
}
public boolean getCallbackInvoked() {
return _callbackInvoked;
}
public void openCVAndReset () {
if (_cv != null) {
DeviceLog.debug("Opening CV");
_cv.open();
_cv = null;
}
if (_invocation != null) {
_invocation = null;
}
}
@Override
public boolean sendEvent(Enum eventCategory, Enum eventId, Object... params) {
if(eventCategory != WebViewEventCategory.CONNECTIVITY) {
throw new IllegalArgumentException("Event category not CONNECTIVITY");
}
DeviceLog.debug("EVENT: " + eventId.name());
switch((ConnectivityEvent)eventId) {
case CONNECTED:
_connectedEvents++;
openCVAndReset();
break;
case DISCONNECTED:
_disconnectedEvents++;
openCVAndReset();
break;
case NETWORK_CHANGE:

Просмотреть файл

@ -59,7 +59,7 @@ public class MetaDataTest {
HashMap<String, Object> params = (HashMap<String, Object>)((MetaDataWebApp)WebViewApp.getCurrentApp()).PARAMS[1];
assertEquals("Metadata doesn't have correct amount of values", params.size(), 4 * 2);
assertEquals("Metadata doesn't have correct amount of values", params.size(), 1 * 2);
HashMap<String, Object> metadataEntries = (HashMap<String, Object>)metaData.getEntries();
for (String k : params.keySet()) {

Просмотреть файл

@ -458,11 +458,18 @@ public class VideoViewTest extends AdUnitActivityTestBaseClass {
assertTrue("Condition Variable was not opened: VIDEO PROGRESS or PREPARE ERROR event was not received", success);
int failedIntervals = 0;
for (int idx = 0; idx < EVENT_POSITIONS.size(); idx++) {
if (idx + 1 < EVENT_POSITIONS.size()) {
long interval = Math.abs(300 - (EVENT_POSITIONS.get(idx + 1) - EVENT_POSITIONS.get(idx)));
DeviceLog.debug("Interval is: " + interval);
assertFalse("Interval of the events weren't as accurate as expected (threshold of 70ms, was: " + interval + ")", interval > 70);
if (interval > 80) {
failedIntervals++;
}
assertFalse("Too many intervals failed to arrive in 80ms threshold (" + failedIntervals + ")", failedIntervals > 3);
}
}

Просмотреть файл

@ -133,6 +133,8 @@ public final class UnityAds {
DeviceLog.info("Initializing Unity Ads " + SdkProperties.getVersionName() + " (" + SdkProperties.getVersionCode() + ") with game id " + gameId + " in production mode");
}
setDebugMode(_debugMode);
ClientProperties.setGameId(gameId);
ClientProperties.setListener(listener);
ClientProperties.setApplicationContext(activity.getApplicationContext());