blob: 348b86a2afaa2b7c30a79a61e7930f724502e7a2 [file] [log] [blame]
/*
* Copyright (C) 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.nfc;
import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import android.content.Context;
import android.content.pm.PackageManager;
import android.nfc.NfcAdapter;
import android.os.SystemProperties;
import android.text.TextUtils;
import androidx.test.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.internal.util.ArrayUtils;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(AndroidJUnit4.class)
public final class NfcFeatureFlagTest {
private static final String TAG = NfcFeatureFlagTest.class.getSimpleName();
private Context mContext;
private NfcAdapter mNfcAdapter;
private boolean mNfcSupported;
@Before
public void setUp() {
mContext = InstrumentationRegistry.getTargetContext();
PackageManager pm = mContext.getPackageManager();
if (!pm.hasSystemFeature(PackageManager.FEATURE_NFC_ANY)) {
mNfcSupported = false;
return;
}
mNfcSupported = true;
mNfcAdapter = NfcAdapter.getDefaultAdapter(mContext);
Assert.assertNotNull(mNfcAdapter);
}
@After
public void tearDown() throws Exception {
}
@Test
public void testIsSecureNfcSupported() {
if (!mNfcSupported) return;
String[] skuList = mContext.getResources().getStringArray(
R.array.config_skuSupportsSecureNfc);
String sku = SystemProperties.get("ro.boot.hardware.sku");
if (TextUtils.isEmpty(sku) || !ArrayUtils.contains(skuList, sku)) {
assertFalse(mNfcAdapter.isSecureNfcSupported());
} else {
assertTrue(mNfcAdapter.isSecureNfcSupported());
}
}
@Test
public void testIsControllerAlwaysOnSupported() {
if (!mNfcSupported) return;
assertThat(mContext.getResources()
.getBoolean(R.bool.nfcc_always_on_allowed))
.isEqualTo(mNfcAdapter.isControllerAlwaysOnSupported());
}
}