FileDocCategorySizeDatePackage
BuildTest.javaAPI DocAndroid 1.5 API4844Wed May 06 22:42:02 BST 2009com.android.unit_tests

BuildTest

public class BuildTest extends TestCase
Provides test cases for android.os.Build and android.server.data.BuildData, and, in turn, many of the system properties set by the build system.

Fields Summary
private static final String
TAG
Constructors Summary
Methods Summary
private static voidassertNotEmpty(java.lang.String message, java.lang.String string)
Asserts that a String is non-null and non-empty. If it is not, an AssertionFailedError is thrown with the given message.


                              
           
        //Log.i(TAG, "" + message + ": " + string);
        assertNotNull(message, string);
        assertFalse(message, string.equals(""));
    
private static voidassertNotEmpty(java.lang.String string)
Asserts that a String is non-null and non-empty. If it is not, an AssertionFailedError is thrown.

        assertNotEmpty(null, string);
    
public voidtestBuildData()
Asserts that android.server.data.BuildData behaves as expected.

        BuildData bd;

        /*
         * Default constructor
         */
        bd = new BuildData();
        assertNotEmpty(bd.getFingerprint());
        assertNotEmpty(bd.getIncrementalVersion());
        Assert.assertTrue(bd.getTime() > 0);

        /*
         * Explicit constructor
         */
        final String FINGERPRINT = "fingerprint";
        final String INCREMENTAL_VERSION = "74321";  // a valid long, for the serialization test
        final long TIME = 12345;
        bd = new BuildData(FINGERPRINT, INCREMENTAL_VERSION, TIME);
        Assert.assertEquals(FINGERPRINT, bd.getFingerprint());
        Assert.assertEquals(INCREMENTAL_VERSION, bd.getIncrementalVersion());
        Assert.assertTrue(bd.getTime() == TIME);

// The serialization methods are package-private.
//
// import java.io.ByteArrayInputStream;
// import java.io.ByteArrayOutputStream;
// import java.io.DataInputStream;
// import java.io.DataOutputStream;
//
//        /*
//         * Serialization
//         */
//        ByteArrayOutputStream out = new ByteArrayOutputStream();
//        bd.write(new DataOutputStream(out));
//        Assert.assertTrue(out.size() > 0);
//
//        /*
//         * Deserialization
//         *
//         * The current version of BuildData converts the incremental version to
//         * and from a long when serializing/deserializing.  Future versions should
//         * treat it as a string.
//         */
//        BuildData bd2 =
//                new BuildData(new DataInputStream(new ByteArrayInputStream(out.toByteArray())));
//        Assert.assertEquals(bd.getFingerprint(), bd2.getFingerprint());
//        Assert.assertEquals(bd.getIncrementalVersion(), bd2.getIncrementalVersion());
//        Assert.assertTrue(bd.getTime() == bd2.getTime());
    
public voidtestBuildFields()
Asserts that all android.os.Build fields are non-empty and/or in a valid range.

        assertNotEmpty("ID", Build.ID);
        assertNotEmpty("DISPLAY", Build.DISPLAY);
        assertNotEmpty("PRODUCT", Build.PRODUCT);
        assertNotEmpty("DEVICE", Build.DEVICE);
        assertNotEmpty("BOARD", Build.BOARD);
        assertNotEmpty("BRAND", Build.BRAND);
        assertNotEmpty("MODEL", Build.MODEL);
        assertNotEmpty("VERSION.INCREMENTAL", Build.VERSION.INCREMENTAL);
        assertNotEmpty("VERSION.RELEASE", Build.VERSION.RELEASE);
        assertNotEmpty("TYPE", Build.TYPE);
        Assert.assertNotNull("TAGS", Build.TAGS); // TAGS is allowed to be empty.
        assertNotEmpty("FINGERPRINT", Build.FINGERPRINT);
        Assert.assertTrue("TIME", Build.TIME > 0);
        assertNotEmpty("USER", Build.USER);
        assertNotEmpty("HOST", Build.HOST);

        // TODO: if any of the android.os.Build fields have additional constraints
        // (e.g., must be a C identifier, must be a valid filename, must not contain any spaces)
        // add tests for them.