blob: 99b39b68d31af9f5987a457fd8f9dfe70d116a04 [file] [log] [blame]
package com.xtremelabs.robolectric.shadows;
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.xtremelabs.robolectric.WithTestDefaultsRunner;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import static com.xtremelabs.robolectric.Robolectric.shadowOf;
import static org.junit.Assert.assertEquals;
@RunWith(WithTestDefaultsRunner.class)
public class ViewInnerTextTest {
private Context activity;
@Before
public void setUp() throws Exception {
activity = new Activity();
}
@Test
public void testInnerText() throws Exception {
LinearLayout top = new LinearLayout(activity);
top.addView(textView("blah"));
top.addView(new View(activity));
top.addView(textView("a b c"));
LinearLayout innerLayout = new LinearLayout(activity);
top.addView(innerLayout);
innerLayout.addView(textView("d e f"));
innerLayout.addView(textView("g h i"));
innerLayout.addView(textView(""));
innerLayout.addView(textView(null));
innerLayout.addView(textView("jkl!"));
top.addView(textView("mnop"));
assertEquals("blah a b c d e f g h i jkl! mnop", shadowOf(top).innerText());
}
@Test
public void shouldOnlyIncludeViewTextViewsText() throws Exception {
LinearLayout top = new LinearLayout(activity);
top.addView(textView("blah", View.VISIBLE));
top.addView(textView("blarg", View.GONE));
top.addView(textView("arrg", View.INVISIBLE));
assertEquals("blah", shadowOf(top).innerText());
}
@Test
public void shouldNotPrefixBogusSpaces() throws Exception {
LinearLayout top = new LinearLayout(activity);
top.addView(textView("blarg", View.GONE));
top.addView(textView("arrg", View.INVISIBLE));
top.addView(textView("blah", View.VISIBLE));
assertEquals("blah", shadowOf(top).innerText());
}
private TextView textView(String text) {
return textView(text, View.VISIBLE);
}
private TextView textView(String text, int visibility) {
TextView textView = new TextView(activity);
textView.setText(text);
textView.setVisibility(visibility);
return textView;
}
}