diff options
Diffstat (limited to 'core/tests')
-rw-r--r-- | core/tests/coretests/src/android/widget/TextViewTest.java | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/core/tests/coretests/src/android/widget/TextViewTest.java b/core/tests/coretests/src/android/widget/TextViewTest.java index af6df1a..0b94f8b 100644 --- a/core/tests/coretests/src/android/widget/TextViewTest.java +++ b/core/tests/coretests/src/android/widget/TextViewTest.java @@ -16,9 +16,13 @@ package android.widget; +import android.app.Activity; +import android.content.Intent; import android.test.AndroidTestCase; import android.test.suitebuilder.annotation.SmallTest; import android.text.GetChars; +import android.text.Selection; +import android.text.Spannable; /** * TextViewTest tests {@link TextView}. @@ -54,4 +58,66 @@ public class TextViewTest extends AndroidTestCase { assertEquals('o', c2[4]); assertEquals('\0', c2[5]); } + + public void testProcessTextActivityResultNonEditable() { + TextView tv = new TextView(mContext); + CharSequence originalText = "This is some text."; + tv.setText(originalText, TextView.BufferType.SPANNABLE); + assertEquals(originalText, tv.getText().toString()); + tv.setTextIsSelectable(true); + Selection.setSelection((Spannable) tv.getText(), 0, tv.getText().length()); + + CharSequence newText = "Text is replaced."; + Intent data = new Intent(); + data.putExtra(Intent.EXTRA_PROCESS_TEXT, newText); + tv.onActivityResult(TextView.PROCESS_TEXT_REQUEST_CODE, Activity.RESULT_OK, data); + + // This is a TextView, which can't be modified. Hence no change should have been made. + assertEquals(originalText, tv.getText().toString()); + } + + public void testProcessTextActivityResultEditable() { + EditText tv = new EditText(mContext); + CharSequence originalText = "This is some text."; + tv.setText(originalText, TextView.BufferType.SPANNABLE); + assertEquals(originalText, tv.getText().toString()); + tv.setTextIsSelectable(true); + Selection.setSelection(tv.getText(), 0, tv.getText().length()); + + CharSequence newText = "Text is replaced."; + Intent data = new Intent(); + data.putExtra(Intent.EXTRA_PROCESS_TEXT, newText); + tv.onActivityResult(TextView.PROCESS_TEXT_REQUEST_CODE, Activity.RESULT_OK, data); + + assertEquals(newText, tv.getText().toString()); + } + + public void testProcessTextActivityResultCancel() { + EditText tv = new EditText(mContext); + CharSequence originalText = "This is some text."; + tv.setText(originalText, TextView.BufferType.SPANNABLE); + assertEquals(originalText, tv.getText().toString()); + tv.setTextIsSelectable(true); + Selection.setSelection(tv.getText(), 0, tv.getText().length()); + + CharSequence newText = "Text is replaced."; + Intent data = new Intent(); + data.putExtra(Intent.EXTRA_PROCESS_TEXT, newText); + tv.onActivityResult(TextView.PROCESS_TEXT_REQUEST_CODE, Activity.RESULT_CANCELED, data); + + assertEquals(originalText, tv.getText().toString()); + } + + public void testProcessTextActivityNoData() { + EditText tv = new EditText(mContext); + CharSequence originalText = "This is some text."; + tv.setText(originalText, TextView.BufferType.SPANNABLE); + assertEquals(originalText, tv.getText().toString()); + tv.setTextIsSelectable(true); + Selection.setSelection(tv.getText(), 0, tv.getText().length()); + + tv.onActivityResult(TextView.PROCESS_TEXT_REQUEST_CODE, Activity.RESULT_OK, null); + + assertEquals(originalText, tv.getText().toString()); + } } |