blob: 8ff149e90965e0c974403cec97fc5e3e1f65d19c [file] [log] [blame]
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.build;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import java.io.IOException;
import java.io.InputStream;
/**
* Checks that Robolectric tests can use android assets.
*/
@RunWith(RobolectricTestRunner.class)
public class AndroidAssetsTest {
private static final String TEST_ASSET_NAME = "AndroidAssetsTest.java";
public String readTestAsset() throws IOException {
try (InputStream stream =
RuntimeEnvironment.getApplication().getAssets().open(TEST_ASSET_NAME)) {
byte[] buffer = new byte[stream.available()];
stream.read(buffer);
return new String(buffer);
}
}
@Test
public void testAssetsExist() throws IOException {
String myselfAsAssetData = readTestAsset();
Assert.assertTrue("asset not correct. It had length=" + myselfAsAssetData.length(),
myselfAsAssetData.contains("String myselfAsAssetData = "));
}
@Test
public void testResourcesExist() {
String actual = RuntimeEnvironment.getApplication().getString(R.string.test_string);
Assert.assertEquals("Hello World", actual);
}
@Test
public void testManifestMerged() throws NameNotFoundException {
Context context = RuntimeEnvironment.getApplication();
ApplicationInfo info = context.getPackageManager().getApplicationInfo(
context.getPackageName(), PackageManager.GET_META_DATA);
String actual = info.metaData.getString("test-metadata");
Assert.assertEquals("Hello World", actual);
}
}