/** * Copyright (c) 2017-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ package com.facebook.litho; import java.util.Collections; import java.util.List; import android.graphics.Rect; import android.support.annotation.VisibleForTesting; /** * Holds information about a {@link TestOutput}. */ public class TestItem { private String mTestKey; private final Rect mBounds = new Rect(); private ComponentHost mHost; private Object mContent; @VisibleForTesting public String getTestKey() { return mTestKey; } void setTestKey(String testKey) { mTestKey = testKey; } @VisibleForTesting public Rect getBounds() { return mBounds; } void setBounds(Rect bounds) { mBounds.set(bounds); } void setBounds(int left, int top, int right, int bottom) { mBounds.set(left, top, right, bottom); } @VisibleForTesting public ComponentHost getHost() { return mHost; } @VisibleForTesting public String getTextContent() { final List<CharSequence> textItems = getTextItems(); final StringBuilder sb = new StringBuilder(); for (int i = 0, size = textItems.size(); i < size; i++) { sb.append(textItems.get(i)); } return sb.toString(); } public List<CharSequence> getTextItems() { return ComponentHostUtils .extractTextContent(Collections.singletonList(mContent)) .getTextItems(); } void setHost(ComponentHost host) { mHost = host; } void setContent(Object content) { mContent = content; } Object getContent() { return mContent; } void release() { mTestKey = null; mBounds.setEmpty(); mHost = null; } }