@Test public void createWidget_shouldAllowForMultipleInstancesOfWidgets() throws Exception { int widgetId = shadowAppWidgetManager.createWidget(SpanishTestAppWidgetProvider.class, R.layout.main); View widgetView = shadowAppWidgetManager.getViewFor(widgetId); assertNotSame(widgetId, shadowAppWidgetManager.createWidget(SpanishTestAppWidgetProvider.class, R.layout.main)); assertNotSame(widgetView, shadowAppWidgetManager.getViewFor(shadowAppWidgetManager.createWidget(SpanishTestAppWidgetProvider.class, R.layout.main))); }
@Test public void getAppWidgetIds() { int expectedWidgetId = shadowAppWidgetManager.createWidget(SpanishTestAppWidgetProvider.class, R.layout.main); int[] appWidgetIds = appWidgetManager.getAppWidgetIds( new ComponentName( SpanishTestAppWidgetProvider.class.getPackage().getName(), SpanishTestAppWidgetProvider.class.getName())); assertEquals(1, appWidgetIds.length); assertEquals(expectedWidgetId, appWidgetIds[0]); }
@Test public void createWidget_shouldInflateViewAndAssignId() throws Exception { int widgetId = shadowAppWidgetManager.createWidget(SpanishTestAppWidgetProvider.class, R.layout.main); View widgetView = shadowAppWidgetManager.getViewFor(widgetId); assertEquals("Hola", ((TextView) widgetView.findViewById(R.id.subtitle)).getText()); }
@Test public void getViewFor_shouldReturnSameViewEveryTimeForGivenWidgetId() throws Exception { int widgetId = shadowAppWidgetManager.createWidget(SpanishTestAppWidgetProvider.class, R.layout.main); View widgetView = shadowAppWidgetManager.getViewFor(widgetId); assertNotNull(widgetView); assertSame(widgetView, shadowAppWidgetManager.getViewFor(widgetId)); }
@TargetApi(Build.VERSION_CODES.LOLLIPOP) @Before public void setUp() { widgetProvider = new WidgetProvider(); alarmManager = (AlarmManager) RuntimeEnvironment.application.getSystemService(Context.ALARM_SERVICE); jobScheduler = (JobScheduler) RuntimeEnvironment.application.getSystemService(Context.JOB_SCHEDULER_SERVICE); widgetManager = AppWidgetManager.getInstance(RuntimeEnvironment.application); appWidgetId = shadowOf(widgetManager).createWidget(WidgetProvider.class, R.layout.appwidget); }
@Test public void shouldReplaceLayoutIfAndOnlyIfLayoutIdIsDifferent() throws Exception { int widgetId = shadowAppWidgetManager.createWidget(SpanishTestAppWidgetProvider.class, R.layout.main); View originalWidgetView = shadowAppWidgetManager.getViewFor(widgetId); assertContains("Main Layout", originalWidgetView); appWidgetManager.updateAppWidget( widgetId, new RemoteViews( ApplicationProvider.getApplicationContext().getPackageName(), R.layout.main)); assertSame(originalWidgetView, shadowAppWidgetManager.getViewFor(widgetId)); appWidgetManager.updateAppWidget( widgetId, new RemoteViews( ApplicationProvider.getApplicationContext().getPackageName(), R.layout.media)); assertNotSame(originalWidgetView, shadowAppWidgetManager.getViewFor(widgetId)); View mediaWidgetView = shadowAppWidgetManager.getViewFor(widgetId); assertContains("Media Layout", mediaWidgetView); }