use of org.prebid.mobile.BannerAdUnit in project prebid-mobile-android by prebid.
the class ExtraTests method testMultipleAdUnitsAllDemandFetched.
@Test
public void testMultipleAdUnitsAllDemandFetched() throws Exception {
final ArrayList<AdUnit> adUnits = new ArrayList<AdUnit>();
final ArrayList<OnCompleteListener> spies = new ArrayList<>();
final ArrayList<MoPubInterstitial> moPubInterstitials = new ArrayList<>();
PrebidMobile.setApplicationContext(m.getActivity().getApplicationContext());
PrebidMobile.setPrebidServerAccountId("bfa84af2-bd16-4d35-96ad-31c6bb888df0");
PrebidMobile.setPrebidServerHost(Host.APPNEXUS);
PrebidMobile.setShareGeoLocation(true);
mHandler.post(new Runnable() {
@Override
public void run() {
// test 0 set up Banner
final MoPubView mopubTest1 = new MoPubView(m.getActivity());
mopubTest1.setAdUnitId("9a8c2ccd3dae405bb925397d35eed8f9");
mopubTest1.setMinimumHeight(50);
mopubTest1.setMinimumWidth(320);
BannerAdUnit adUnit1 = new BannerAdUnit("7cd2c7c8-cebe-4206-b5a4-97b9e840729e", 320, 50);
adUnits.add(adUnit1);
OnCompleteListener listener1 = new OnCompleteListener() {
@Override
public void onComplete(ResultCode resultCode) {
FrameLayout adFrame = m.getActivity().findViewById(R.id.adFrame);
adFrame.addView(mopubTest1);
mopubTest1.setId(1);
mopubTest1.loadAd();
}
};
listener1 = spy(listener1);
spies.add(listener1);
adUnit1.fetchDemand(mopubTest1, listener1);
// test 1 set up Banner
final MoPubView mopubTest2 = new MoPubView(m.getActivity());
mopubTest2.setAdUnitId("50564379db734ebbb347849221a1081e");
mopubTest2.setMinimumHeight(50);
mopubTest2.setMinimumWidth(320);
BannerAdUnit adUnit2 = new BannerAdUnit("525a5fee-ffbb-4f16-935d-3717c56e7aeb", 320, 50);
adUnits.add(adUnit2);
OnCompleteListener listener2 = new OnCompleteListener() {
@Override
public void onComplete(ResultCode resultCode) {
FrameLayout adFrame = m.getActivity().findViewById(R.id.adFrame);
adFrame.addView(mopubTest2);
mopubTest2.setId(2);
mopubTest2.loadAd();
}
};
listener2 = spy(listener2);
spies.add(listener2);
adUnit2.fetchDemand(mopubTest2, listener2);
// test 2 set up Banner
final MoPubView mopubTest3 = new MoPubView(m.getActivity());
mopubTest3.setAdUnitId("5ff9556b05964e65b684ec54013df59d");
mopubTest2.setMinimumHeight(250);
mopubTest2.setMinimumWidth(300);
BannerAdUnit adUnit3 = new BannerAdUnit("511c39f2-b527-41af-811a-adac6911bdfc", 300, 250);
adUnits.add(adUnit3);
OnCompleteListener listener3 = new OnCompleteListener() {
@Override
public void onComplete(ResultCode resultCode) {
FrameLayout adFrame = m.getActivity().findViewById(R.id.adFrame);
adFrame.addView(mopubTest3);
mopubTest3.setId(3);
mopubTest3.loadAd();
}
};
listener3 = spy(listener3);
spies.add(listener3);
adUnit3.fetchDemand(mopubTest3, listener3);
// test 3 set up Banner
final MoPubView mopubTest4 = new MoPubView(m.getActivity());
mopubTest4.setAdUnitId("c5c9267bcf6247cb91a116d1ef6c7487");
mopubTest4.setMinimumHeight(250);
mopubTest4.setMinimumWidth(300);
BannerAdUnit adUnit4 = new BannerAdUnit("42ad4418-9b36-4e39-ae54-2f7a13ad8616", 300, 250);
adUnits.add(adUnit4);
OnCompleteListener listener4 = new OnCompleteListener() {
@Override
public void onComplete(ResultCode resultCode) {
FrameLayout adFrame = m.getActivity().findViewById(R.id.adFrame);
adFrame.addView(mopubTest4);
mopubTest4.setId(4);
mopubTest4.loadAd();
}
};
listener4 = spy(listener4);
spies.add(listener4);
adUnit4.fetchDemand(mopubTest4, listener4);
// test 4 set up Banner
final MoPubView mopubTest5 = new MoPubView(m.getActivity());
mopubTest5.setAdUnitId(Constants.MOPUB_BANNER_ADUNIT_ID_300x250_APPNEXUS);
mopubTest5.setMinimumHeight(250);
mopubTest5.setMinimumWidth(300);
BannerAdUnit adUnit5 = new BannerAdUnit(Constants.PBS_CONFIG_ID_300x250_APPNEXUS, 300, 250);
adUnits.add(adUnit5);
OnCompleteListener listener5 = new OnCompleteListener() {
@Override
public void onComplete(ResultCode resultCode) {
FrameLayout adFrame = m.getActivity().findViewById(R.id.adFrame);
adFrame.addView(mopubTest5);
mopubTest5.setId(5);
mopubTest5.loadAd();
}
};
listener5 = spy(listener5);
spies.add(listener5);
adUnit4.fetchDemand(mopubTest5, listener5);
// test 5 set up Interstitial
final MoPubInterstitial mopubInstl1 = new MoPubInterstitial(m.getActivity(), Constants.MOPUB_INTERSTITIAL_ADUNIT_ID_APPNEXUS);
moPubInterstitials.add(mopubInstl1);
InterstitialAdUnit adUnit6 = new InterstitialAdUnit(Constants.PBS_CONFIG_ID_INTERSTITIAL_APPNEXUS);
adUnits.add(adUnit6);
OnCompleteListener listener6 = new OnCompleteListener() {
@Override
public void onComplete(ResultCode resultCode) {
mopubInstl1.load();
}
};
listener6 = spy(listener6);
spies.add(listener6);
adUnit6.fetchDemand(mopubInstl1, listener6);
// test 6 set up Interstitial
final MoPubInterstitial mopubInstl2 = new MoPubInterstitial(m.getActivity(), "c3fca03154a540bfa7f0971fb984e3e8");
moPubInterstitials.add(mopubInstl2);
InterstitialAdUnit adUnit7 = new InterstitialAdUnit("bde00f49-0a1b-483a-9716-e2dd427b794c");
adUnits.add(adUnit7);
OnCompleteListener listener7 = new OnCompleteListener() {
@Override
public void onComplete(ResultCode resultCode) {
mopubInstl2.load();
}
};
listener7 = spy(listener7);
spies.add(listener7);
adUnit7.fetchDemand(mopubInstl2, listener7);
// test 7 set up Interstitial
final MoPubInterstitial mopubInstl3 = new MoPubInterstitial(m.getActivity(), "12ecf78eb8314f8bb36192a6286adc56");
moPubInterstitials.add(mopubInstl3);
InterstitialAdUnit adUnit8 = new InterstitialAdUnit("6ceca3d4-f5b8-4717-b4d9-178843f873f8");
adUnits.add(adUnit8);
OnCompleteListener listener8 = new OnCompleteListener() {
@Override
public void onComplete(ResultCode resultCode) {
mopubInstl3.load();
}
};
listener8 = spy(listener8);
spies.add(listener8);
adUnit8.fetchDemand(mopubInstl3, listener8);
}
});
Thread.sleep(10000);
// verify line by line for easier debug
ArgumentCaptor<ResultCode> resultCode = ArgumentCaptor.forClass(ResultCode.class);
verify(spies.get(0), times(1)).onComplete(resultCode.capture());
if (ResultCode.SUCCESS.equals(resultCode.getValue())) {
onWebView(withParent(withId(1))).check(webContent(containingTextInBody("143135824")));
} else {
LogUtil.e("MultipleAdUnits", "For test 0, actual result code is " + resultCode.getValue());
}
ArgumentCaptor<ResultCode> resultCode1 = ArgumentCaptor.forClass(ResultCode.class);
verify(spies.get(1), times(1)).onComplete(resultCode1.capture());
if (ResultCode.SUCCESS.equals(resultCode1.getValue())) {
onWebView(withParent(withId(2))).check(webContent(containingTextInBody("143208584")));
} else {
LogUtil.e("MultipleAdUnits", "For test 1, actual result code is " + resultCode1.getValue());
}
ArgumentCaptor<ResultCode> resultCode2 = ArgumentCaptor.forClass(ResultCode.class);
verify(spies.get(2), times(1)).onComplete(resultCode2.capture());
if (ResultCode.SUCCESS.equals(resultCode2.getValue())) {
onWebView(withParent(withId(3))).check(webContent(containingTextInBody("143208598")));
} else {
LogUtil.e("MultipleAdUnits", "For test 2, actual result code is " + resultCode2.getValue());
}
ArgumentCaptor<ResultCode> resultCode3 = ArgumentCaptor.forClass(ResultCode.class);
verify(spies.get(3), times(1)).onComplete(resultCode3.capture());
if (ResultCode.SUCCESS.equals(resultCode3.getValue())) {
onWebView(withParent(withId(4))).check(webContent(containingTextInBody("143208640")));
} else {
LogUtil.e("MultipleAdUnits", "For test 3, actual result code is " + resultCode3.getValue());
}
ArgumentCaptor<ResultCode> resultCode4 = ArgumentCaptor.forClass(ResultCode.class);
verify(spies.get(4), times(1)).onComplete(resultCode4.capture());
if (ResultCode.SUCCESS.equals(resultCode4.getValue())) {
onWebView(withParent(withId(5))).check(webContent(containingTextInBody("ucTag.renderAd")));
} else {
LogUtil.e("MultipleAdUnits", "For test 4, actual result code is " + resultCode4.getValue());
}
ArgumentCaptor<ResultCode> resultCode5 = ArgumentCaptor.forClass(ResultCode.class);
verify(spies.get(5), times(1)).onComplete(resultCode5.capture());
if (ResultCode.SUCCESS.equals(resultCode5.getValue())) {
moPubInterstitials.get(0).show();
Thread.sleep(2000);
assertEquals("com.mopub.mobileads.MoPubActivity", TestUtil.getCurrentActivity().getClass().getName());
onWebView().check(webContent(containingTextInBody("ucTag.renderAd")));
Espresso.pressBack();
} else {
LogUtil.e("MultipleAdUnits", "For test 5, actual result code is " + resultCode5.getValue());
}
ArgumentCaptor<ResultCode> resultCode6 = ArgumentCaptor.forClass(ResultCode.class);
verify(spies.get(6), times(1)).onComplete(resultCode6.capture());
if (ResultCode.SUCCESS.equals(resultCode6.getValue())) {
moPubInterstitials.get(1).show();
Thread.sleep(2000);
assertEquals("com.mopub.mobileads.MoPubActivity", TestUtil.getCurrentActivity().getClass().getName());
onWebView().check(webContent(containingTextInBody("143393807")));
Espresso.pressBack();
} else {
LogUtil.e("MultipleAdUnits", "For test 6, actual result code is " + resultCode6.getValue());
}
ArgumentCaptor<ResultCode> resultCode7 = ArgumentCaptor.forClass(ResultCode.class);
verify(spies.get(7), times(1)).onComplete(resultCode7.capture());
if (ResultCode.SUCCESS.equals(resultCode7.getValue())) {
moPubInterstitials.get(2).show();
Thread.sleep(5000);
assertEquals("com.mopub.mobileads.MoPubActivity", TestUtil.getCurrentActivity().getClass().getName());
onWebView().check(webContent(containingTextInBody("143393864")));
Espresso.pressBack();
} else {
LogUtil.e("MultipleAdUnits", "For test 7, actual result code is " + resultCode7.getValue());
}
}
use of org.prebid.mobile.BannerAdUnit in project prebid-mobile-android by prebid.
the class ExtraTests method testAppNexusAgeTargeting4.
@Test
public void testAppNexusAgeTargeting4() throws Exception {
server.setDispatcher(new Dispatcher() {
@Override
public MockResponse dispatch(RecordedRequest request) throws InterruptedException {
if (request.getPath().equals("/")) {
String postData = request.getBody().readUtf8();
assertTrue("Post data does not contain yob 1989: " + postData, postData.contains("1989"));
return getAppNexusDemand(postData);
}
return new MockResponse().setResponseCode(404);
}
});
PrebidMobile.setApplicationContext(m.getActivity().getApplicationContext());
PrebidMobile.setPrebidServerAccountId("bfa84af2-bd16-4d35-96ad-31c6bb888df0");
Host.CUSTOM.setHostUrl(server.url("/").toString());
PrebidMobile.setPrebidServerHost(Host.CUSTOM);
PrebidMobile.setShareGeoLocation(true);
TargetingParams.setYearOfBirth(1989);
final OnCompleteListener[] listener = new OnCompleteListener[1];
mHandler.post(new Runnable() {
@Override
public void run() {
final MoPubView adObject = new MoPubView(m.getActivity());
adObject.setAdUnitId(Constants.MOPUB_BANNER_ADUNIT_ID_300x250_APPNEXUS);
adObject.setMinimumHeight(250);
adObject.setMinimumWidth(300);
BannerAdUnit adUnit = new BannerAdUnit("47706260-ee91-4cd7-b656-2185aca89f59", 300, 250);
OnCompleteListener l = new OnCompleteListener() {
@Override
public void onComplete(ResultCode resultCode) {
FrameLayout adFrame = m.getActivity().findViewById(R.id.adFrame);
adFrame.addView(adObject);
adObject.loadAd();
}
};
listener[0] = spy(l);
adUnit.fetchDemand(adObject, listener[0]);
}
});
Thread.sleep(10000);
verify(listener[0], times(1)).onComplete(ResultCode.SUCCESS);
onView(withId(R.id.adFrame)).check(matches(isDisplayed()));
onWebView().check(webMatches(getCurrentUrl(), containsString("ads.mopub.com")));
onWebView().check(webContent(containingTextInBody("ucTag.renderAd")));
}
use of org.prebid.mobile.BannerAdUnit in project prebid-mobile-android by prebid.
the class ExtraTests method testLocationTargeting.
// This test should be run with a real device located in New York City, New York, USA
@Test
public void testLocationTargeting() throws Exception {
if (!TestUtil.isEmulator()) {
server.setDispatcher(new Dispatcher() {
int lastfix = -1;
@Override
public MockResponse dispatch(RecordedRequest request) throws InterruptedException {
String postData = request.getBody().readUtf8();
if (request.getPath().equals("/sharerealgeo")) {
assertTrue(postData.contains("geo"));
try {
JSONObject data = new JSONObject(postData);
lastfix = data.getJSONObject("device").getJSONObject("geo").getInt("lastfix");
} catch (JSONException e) {
}
return getAppNexusDemand(postData);
} else if (request.getPath().equals("/sharefakegeo")) {
assertTrue(!postData.contains("geo"));
// add a shanghai location to the request
try {
JSONObject data = new JSONObject(postData);
JSONObject device = data.getJSONObject("device");
JSONObject geo = new JSONObject();
geo.put("lat", 31.2304);
geo.put("lon", 121.4737);
geo.put("accuracy", 19);
if (lastfix > 0) {
geo.put("lastfix", lastfix);
}
device.put("geo", geo);
data.put("device", device);
return getAppNexusDemand(data.toString());
} catch (JSONException e) {
}
}
return new MockResponse().setResponseCode(404);
}
});
// Global Settings
PrebidMobile.setApplicationContext(m.getActivity().getApplicationContext());
PrebidMobile.setPrebidServerAccountId("bfa84af2-bd16-4d35-96ad-31c6bb888df0");
// Share location
PrebidMobile.setShareGeoLocation(true);
Host.CUSTOM.setHostUrl(server.url("/sharerealgeo").toString());
PrebidMobile.setPrebidServerHost(Host.CUSTOM);
final OnCompleteListener[] listener = new OnCompleteListener[2];
mHandler.post(new Runnable() {
@Override
public void run() {
final MoPubView adObject = new MoPubView(m.getActivity());
adObject.setAdUnitId(Constants.MOPUB_BANNER_ADUNIT_ID_300x250_APPNEXUS);
adObject.setMinimumHeight(250);
adObject.setMinimumWidth(300);
BannerAdUnit adUnit = new BannerAdUnit("8522cead-1eb4-4f09-b6e2-083fa3a6e6ce", 300, 250);
OnCompleteListener l = new OnCompleteListener() {
@Override
public void onComplete(ResultCode resultCode) {
FrameLayout adFrame = m.getActivity().findViewById(R.id.adFrame);
adFrame.addView(adObject);
adObject.loadAd();
}
};
listener[0] = spy(l);
adUnit.fetchDemand(adObject, listener[0]);
}
});
Thread.sleep(10000);
verify(listener[0], times(1)).onComplete(ResultCode.SUCCESS);
onWebView().check(webContent(containingTextInBody("ucTag.renderAd")));
// Do not share location
PrebidMobile.setShareGeoLocation(false);
Host.CUSTOM.setHostUrl(server.url("/sharefakegeo").toString());
PrebidMobile.setPrebidServerHost(Host.CUSTOM);
mHandler.post(new Runnable() {
@Override
public void run() {
final MoPubView adObject = new MoPubView(m.getActivity());
adObject.setAdUnitId(Constants.MOPUB_BANNER_ADUNIT_ID_300x250_APPNEXUS);
adObject.setMinimumHeight(250);
adObject.setMinimumWidth(300);
BannerAdUnit adUnit = new BannerAdUnit("8522cead-1eb4-4f09-b6e2-083fa3a6e6ce", 300, 250);
OnCompleteListener l = new OnCompleteListener() {
@Override
public void onComplete(ResultCode resultCode) {
FrameLayout adFrame = m.getActivity().findViewById(R.id.adFrame);
adFrame.addView(adObject);
adObject.loadAd();
}
};
listener[1] = spy(l);
adUnit.fetchDemand(adObject, listener[1]);
}
});
Thread.sleep(10000);
// TODO uncomment below two lines when https://jira.corp.appnexus.com/browse/ROR-481 is resolved
// verify(listener[1], times(1)).onComplete(ResultCode.NO_BIDS);
// onWebView().check(webContent(containingTextInBody("Hello, I'm not a Prebid ad.")));
}
}
use of org.prebid.mobile.BannerAdUnit in project prebid-mobile-android by prebid.
the class ExtraTests method testRubiconInvalidPrebidServerConfigId.
@Test
public void testRubiconInvalidPrebidServerConfigId() throws Exception {
PrebidMobile.setApplicationContext(m.getActivity().getApplicationContext());
PrebidMobile.setPrebidServerAccountId("1001");
PrebidMobile.setPrebidServerHost(Host.RUBICON);
PrebidMobile.setShareGeoLocation(true);
final OnCompleteListener[] listener = new OnCompleteListener[1];
mHandler.post(new Runnable() {
@Override
public void run() {
final MoPubView adObject = new MoPubView(m.getActivity());
adObject.setAdUnitId(Constants.MOPUB_BANNER_ADUNIT_ID_300x250_RUBICON);
adObject.setMinimumHeight(250);
adObject.setMinimumWidth(300);
BannerAdUnit adUnit = new BannerAdUnit("1001-1_ERROR", 300, 250);
OnCompleteListener l = new OnCompleteListener() {
@Override
public void onComplete(ResultCode resultCode) {
FrameLayout adFrame = m.getActivity().findViewById(R.id.adFrame);
adFrame.addView(adObject);
adObject.loadAd();
}
};
listener[0] = spy(l);
adUnit.fetchDemand(adObject, listener[0]);
}
});
Thread.sleep(2000);
verify(listener[0], times(1)).onComplete(ResultCode.INVALID_CONFIG_ID);
}
use of org.prebid.mobile.BannerAdUnit in project prebid-mobile-android by prebid.
the class ExtraTests method testAppNexusInvalidPrebidServerConfigId.
@Test
public void testAppNexusInvalidPrebidServerConfigId() throws Exception {
PrebidMobile.setApplicationContext(m.getActivity().getApplicationContext());
PrebidMobile.setPrebidServerAccountId("bfa84af2-bd16-4d35-96ad-31c6bb888df0");
PrebidMobile.setPrebidServerHost(Host.APPNEXUS);
PrebidMobile.setShareGeoLocation(true);
final OnCompleteListener[] listener = new OnCompleteListener[1];
mHandler.post(new Runnable() {
@Override
public void run() {
final MoPubView adObject = new MoPubView(m.getActivity());
adObject.setAdUnitId(Constants.MOPUB_BANNER_ADUNIT_ID_300x250_APPNEXUS);
adObject.setMinimumHeight(250);
adObject.setMinimumWidth(300);
BannerAdUnit adUnit = new BannerAdUnit("6ace8c7d-88c0-4623-8117-ffffffffffff", 300, 250);
OnCompleteListener l = new OnCompleteListener() {
@Override
public void onComplete(ResultCode resultCode) {
FrameLayout adFrame = m.getActivity().findViewById(R.id.adFrame);
adFrame.addView(adObject);
adObject.loadAd();
}
};
listener[0] = spy(l);
adUnit.fetchDemand(adObject, listener[0]);
}
});
Thread.sleep(10000);
verify(listener[0], times(1)).onComplete(ResultCode.INVALID_CONFIG_ID);
}
Aggregations