| // Copyright 2021 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.ui.widget; |
| |
| import android.app.Activity; |
| import android.view.LayoutInflater; |
| import android.view.View; |
| import android.view.ViewGroup.LayoutParams; |
| import android.widget.Button; |
| |
| import androidx.test.filters.SmallTest; |
| |
| import org.junit.Before; |
| import org.junit.Rule; |
| import org.junit.Test; |
| import org.junit.runner.RunWith; |
| |
| import org.chromium.base.test.BaseJUnit4ClassRunner; |
| import org.chromium.base.test.util.Feature; |
| import org.chromium.content_public.browser.test.util.TestThreadUtils; |
| import org.chromium.ui.R; |
| import org.chromium.ui.test.util.BlankUiTestActivityTestCase; |
| import org.chromium.ui.test.util.RenderTestRule; |
| |
| /** Render tests for {@link TextViewWithTightWrap}. */ |
| @RunWith(BaseJUnit4ClassRunner.class) |
| public class TextViewWithTightWrapTest extends BlankUiTestActivityTestCase { |
| private static final int RENDER_TEST_REVISION = 2; |
| private static final String RENDER_TEST_REVISION_DESCRIPTION = "Update the text style."; |
| |
| private TextViewWithTightWrap mTextView; |
| private View mView; |
| |
| @Rule |
| public RenderTestRule mRenderTestRule = |
| RenderTestRule.Builder.withPublicCorpus() |
| .setRevision(RENDER_TEST_REVISION) |
| .setDescription(RENDER_TEST_REVISION_DESCRIPTION) |
| .setBugComponent(RenderTestRule.Component.UI_BROWSER_MOBILE) |
| .build(); |
| |
| @Before |
| public void setup() { |
| // Setup the UI. |
| Activity activity = getActivity(); |
| mView = LayoutInflater.from(activity).inflate(R.layout.textbubble_text, null, false); |
| LayoutParams params = |
| new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); |
| mTextView = mView.findViewById(R.id.message); |
| TestThreadUtils.runOnUiThreadBlocking( |
| () -> { |
| mView.setBackgroundColor(activity.getColor(R.color.filled_button_bg)); |
| mTextView.setText("First line\nVery very very very long second line"); |
| getActivity().setContentView(mView, params); |
| }); |
| } |
| |
| @Test |
| @SmallTest |
| @Feature({"RenderTest"}) |
| public void testBasicTextView() throws Exception { |
| // Render UI Elements. |
| mRenderTestRule.render(mView, "TextViewWithTightWrap_Basic"); |
| } |
| |
| @Test |
| @SmallTest |
| @Feature({"RenderTest"}) |
| public void testWrapContentTextView() throws Exception { |
| LayoutParams params = mTextView.getLayoutParams(); |
| params.height = LayoutParams.WRAP_CONTENT; |
| params.width = LayoutParams.WRAP_CONTENT; |
| // Render UI Elements. |
| mRenderTestRule.render(mView, "TextViewWithTightWrap_WrapContent"); |
| } |
| |
| @Test |
| @SmallTest |
| @Feature({"RenderTest"}) |
| public void testMatchParentTextView() throws Exception { |
| LayoutParams params = mTextView.getLayoutParams(); |
| params.height = LayoutParams.MATCH_PARENT; |
| params.width = LayoutParams.MATCH_PARENT; |
| // Render UI Elements. |
| mRenderTestRule.render(mView, "TextViewWithTightWrap_MatchParent"); |
| } |
| |
| @Test |
| @SmallTest |
| @Feature({"RenderTest"}) |
| public void testTextViewWithSnooze() throws Exception { |
| Button snoozeButton = (Button) mView.findViewById(R.id.button_snooze); |
| TestThreadUtils.runOnUiThreadBlocking( |
| () -> { |
| snoozeButton.setVisibility(View.VISIBLE); |
| }); |
| // Render UI Elements. |
| mRenderTestRule.render(mView, "TextViewWithTightWrap_MatchParent_WithSnooze"); |
| } |
| } |