/*
* Copyright (C) 2014 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.google.android.glass.sample.stopwatch;
import android.content.ContextWrapper;
import android.content.Intent;
import android.test.ActivityUnitTestCase;
/**
* Unit tests for {@link MenuActivity}.
*/
public class MenuActivityTest extends ActivityUnitTestCase<MockMenuActivity> {
private boolean mServiceStopped;
private Intent mActivityIntent;
public MenuActivityTest() {
super(MockMenuActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
// Set a mock context to simulate service binding.
setActivityContext(new ContextWrapper(getInstrumentation().getTargetContext()) {
@Override
public boolean stopService(Intent intent) {
assertEquals(
StopwatchService.class.getName(), intent.getComponent().getClassName());
mServiceStopped = true;
return true;
}
});
mActivityIntent = new Intent(getInstrumentation().getTargetContext(), MenuActivity.class);
}
public void testOptionsMenuStop() {
MenuActivity activity = startActivity(mActivityIntent, null, null);
boolean menuHandled = getInstrumentation().invokeMenuActionSync(activity, R.id.stop, 0);
assertTrue(menuHandled);
assertTrue(mServiceStopped);
}
public void testOptionsMenuUnknown() {
MenuActivity activity = startActivity(mActivityIntent, null, null);
boolean menuHandled = getInstrumentation().invokeMenuActionSync(activity, R.id.stop + 1, 0);
assertFalse(menuHandled);
assertFalse(mServiceStopped);
}
public void testOptionsMenuClosedFinishesActivity() {
MenuActivity activity = startActivity(mActivityIntent, null, null);
activity.onOptionsMenuClosed(null);
assertTrue(isFinishCalled());
}
}