The following is a list of public Docker images Travis uses for our container based builds. You can grab them with docker pull quay.io/travisci/travis-$lang
.
- Do note that they are large in size, 800MB - 1.8G
Images:
The following is a list of public Docker images Travis uses for our container based builds. You can grab them with docker pull quay.io/travisci/travis-$lang
.
Images:
public static void printPermissions(Context context) { | |
PackageInfo android; | |
try { | |
android = context.getPackageManager().getPackageInfo("android", PackageManager.GET_PERMISSIONS); | |
} catch (PackageManager.NameNotFoundException e) { | |
e.printStackTrace(); | |
return; | |
} | |
PermissionInfo[] permissions = android.permissions; |
package com.fewlaps.android.permissiongranter; | |
import android.app.Activity; | |
import android.content.pm.PackageManager; | |
import android.os.Build; | |
import android.support.test.uiautomator.UiDevice; | |
import android.support.test.uiautomator.UiObject; | |
import android.support.test.uiautomator.UiObjectNotFoundException; | |
import android.support.test.uiautomator.UiSelector; | |
import android.support.v4.content.ContextCompat; |
language: android | |
android: | |
components: | |
- build-tools-19.0.3 | |
- android-19 | |
- sysimg-19 | |
- extra-android-support | |
licenses: | |
- android-sdk-license-5be876d5 # new license! | |
- '.*intel.+' |
RecyclerViewInteraction.<Item>onRecyclerView(withId(R.id.recyclerview)) | |
.withItems(items) | |
.check(new ItemViewAssertion<Item>() { | |
@Override | |
public void check(Item item, View view, NoMatchingViewException e) { | |
matches(hasDescendant(withText(item.getDisplayName()))) | |
.check(view, e); | |
} | |
}); |
import static android.support.test.espresso.Espresso.onData; | |
import static android.support.test.espresso.Espresso.onView; | |
import static android.support.test.espresso.Espresso.pressBack; | |
import static android.support.test.espresso.action.ViewActions.click; | |
import static android.support.test.espresso.action.ViewActions.closeSoftKeyboard; | |
import static android.support.test.espresso.action.ViewActions.swipeUp; | |
import static android.support.test.espresso.action.ViewActions.typeText; | |
import static android.support.test.espresso.assertion.ViewAssertions.matches; | |
import static android.support.test.espresso.matcher.ViewMatchers.withId; | |
import static android.support.test.espresso.matcher.ViewMatchers.withText; |
package com.novoda.espresso; | |
import android.os.SystemClock; | |
import android.test.ActivityInstrumentationTestCase2; | |
import com.mypackage.EntryPointActivity; | |
public class EspressoInstrumentationTestCase extends ActivityInstrumentationTestCase2<EntryPointActivity> { | |
private SystemAnimations systemAnimations; |
public abstract class BaseStatelessBlackBoxEspressoTest<T extends Activity> extends ActivityInstrumentationTestCase2<T> { | |
private SystemAnimations mSystemAnimations; | |
public BaseStatelessBlackBoxEspressoTest(Class clazz) { | |
super(clazz); | |
} | |
@Override | |
protected void setUp() throws Exception { |
<?xml version="1.0" encoding="utf-8"?> | |
<resources> | |
<!-- google's material design colours from | |
http://www.google.com/design/spec/style/color.html#color-ui-color-palette --> | |
<!--reds--> | |
<color name="md_red_50">#FFEBEE</color> | |
<color name="md_red_100">#FFCDD2</color> | |
<color name="md_red_200">#EF9A9A</color> |
/** | |
* Fancy ID generator that creates 20-character string identifiers with the following properties: | |
* | |
* 1. They're based on timestamp so that they sort *after* any existing ids. | |
* 2. They contain 72-bits of random data after the timestamp so that IDs won't collide with other clients' IDs. | |
* 3. They sort *lexicographically* (so the timestamp is converted to characters that will sort properly). | |
* 4. They're monotonically increasing. Even if you generate more than one in the same timestamp, the | |
* latter ones will sort after the former ones. We do this by using the previous random bits | |
* but "incrementing" them by 1 (only in the case of a timestamp collision). | |
*/ |