@Test public void testSplitMainThreadLayouts() { SplitLayoutResolver.createForTag(splitTag, mMainConfig, mBgConfig, mEnabledComponent); SplitLayoutResolver resolver = SplitLayoutResolver.getForTag(splitTag); when(ThreadUtils.isMainThread()).thenReturn(true); Whitebox.setInternalState(resolver, "mainService", mainService); Whitebox.setInternalState(resolver, "bgService", bgService); ComponentTree tree = ComponentTree.create(mContext, mComponent).splitLayoutTag(splitTag).build(); tree.setRootAndSizeSpec( mComponent, makeSizeSpec(100, EXACTLY), makeSizeSpec(100, EXACTLY), new Size()); verify(mainService).submit(any(Runnable.class), eq(0)); verify(mainService).submit(any(Runnable.class), eq(1)); verify(mainService, never()).submit(any(Runnable.class), eq(2)); verify(bgService, never()).submit(any(Runnable.class), any()); }
@Test public void testSplitBgThreadLayouts() { SplitLayoutResolver.createForTag(splitTag, mMainConfig, mBgConfig, mEnabledComponent); SplitLayoutResolver resolver = SplitLayoutResolver.getForTag(splitTag); when(ThreadUtils.isMainThread()).thenReturn(false); Whitebox.setInternalState(resolver, "mainService", mainService); Whitebox.setInternalState(resolver, "bgService", bgService); final ComponentTree tree = ComponentTree.create(mContext, mComponent).splitLayoutTag(splitTag).build(); tree.setRootAndSizeSpecAsync( mComponent, makeSizeSpec(100, EXACTLY), makeSizeSpec(100, EXACTLY)); mLayoutThreadShadowLooper.runOneTask(); verify(bgService).submit(any(Runnable.class), eq(0)); verify(bgService).submit(any(Runnable.class), eq(1)); verify(bgService, never()).submit(any(Runnable.class), eq(2)); verify(mainService, never()).submit(any(Runnable.class), any()); }
@Test public void testOnlyMainEnabled() { SplitLayoutResolver.createForTag(splitTag, mMainConfig, null, mEnabledComponent); SplitLayoutResolver resolver = SplitLayoutResolver.getForTag(splitTag); when(ThreadUtils.isMainThread()).thenReturn(false); Whitebox.setInternalState(resolver, "mainService", mainService); final ComponentTree tree = ComponentTree.create(mContext, mComponent).splitLayoutTag(splitTag).build(); tree.setRootAndSizeSpecAsync( mComponent, makeSizeSpec(100, EXACTLY), makeSizeSpec(100, EXACTLY)); mLayoutThreadShadowLooper.runOneTask(); verify(bgService, never()).submit(any(Runnable.class), eq(0)); } }
? null : mComponentTreeMeasureListenerFactory.create(this)) .splitLayoutTag(mSplitLayoutTag) .hasMounted(mHasMounted) .build();