Add missing textAlignVertical support on android textview

Summary:Add missing implementation of `textAlignVertical` style prop for `Text`-component.
According to the [docs](https://facebook.github.io/react-native/docs/text.html#style) it should be implemented but was only added for `TextInput` in f453e14c8f.
Closes https://github.com/facebook/react-native/pull/6105

Differential Revision: D3029783

Pulled By: dmmiller

fb-gh-sync-id: 29bcd50a7280c890707f811bcfc7a3d5c5be5142
shipit-source-id: 29bcd50a7280c890707f811bcfc7a3d5c5be5142
This commit is contained in:
Alexander Andersson
2016-03-10 03:01:37 -08:00
committed by Facebook Github Bot 4
parent 8c2e531542
commit d20bde3f2e
3 changed files with 78 additions and 22 deletions

View File

@@ -289,26 +289,45 @@ public class ReactTextInputPropertyTest {
@Test
public void testTextAlign() {
ReactEditText view = mManager.createViewInstance(mThemedContext);
int gravity = view.getGravity();
assertThat(view.getGravity() & Gravity.BOTTOM).isNotEqualTo(Gravity.BOTTOM);
int defaultGravity = view.getGravity();
int defaultHorizontalGravity = defaultGravity & Gravity.HORIZONTAL_GRAVITY_MASK;
int defaultVerticalGravity = defaultGravity & Gravity.VERTICAL_GRAVITY_MASK;
mManager.updateProperties(view, buildStyles("textAlignVertical", "bottom"));
assertThat(view.getGravity() & Gravity.BOTTOM).isEqualTo(Gravity.BOTTOM);
mManager.updateProperties(
view,
buildStyles("textAlign", "right", "textAlignVertical", "top"));
assertThat(view.getGravity() & Gravity.BOTTOM).isNotEqualTo(Gravity.BOTTOM);
assertThat(view.getGravity() & (Gravity.RIGHT | Gravity.TOP))
.isEqualTo(Gravity.RIGHT | Gravity.TOP);
mManager.updateProperties(
view,
buildStyles("textAlignVertical", null));
assertThat(view.getGravity() & Gravity.RIGHT).isEqualTo(Gravity.RIGHT);
assertThat(view.getGravity() & Gravity.TOP).isNotEqualTo(Gravity.TOP);
// Theme
assertThat(view.getGravity()).isNotEqualTo(Gravity.NO_GRAVITY);
// TextAlign
mManager.updateProperties(view, buildStyles("textAlign", "left"));
assertThat(view.getGravity() & Gravity.HORIZONTAL_GRAVITY_MASK).isEqualTo(Gravity.LEFT);
mManager.updateProperties(view, buildStyles("textAlign", "right"));
assertThat(view.getGravity() & Gravity.HORIZONTAL_GRAVITY_MASK).isEqualTo(Gravity.RIGHT);
mManager.updateProperties(view, buildStyles("textAlign", "center"));
assertThat(view.getGravity() & Gravity.HORIZONTAL_GRAVITY_MASK).isEqualTo(Gravity.CENTER_HORIZONTAL);
mManager.updateProperties(view, buildStyles("textAlign", null));
assertThat(view.getGravity()).isEqualTo(gravity);
assertThat(view.getGravity() & Gravity.HORIZONTAL_GRAVITY_MASK).isEqualTo(defaultHorizontalGravity);
// TextAlignVertical
mManager.updateProperties(view, buildStyles("textAlignVertical", "top"));
assertThat(view.getGravity() & Gravity.VERTICAL_GRAVITY_MASK).isEqualTo(Gravity.TOP);
mManager.updateProperties(view, buildStyles("textAlignVertical", "bottom"));
assertThat(view.getGravity() & Gravity.VERTICAL_GRAVITY_MASK).isEqualTo(Gravity.BOTTOM);
mManager.updateProperties(view, buildStyles("textAlignVertical", "center"));
assertThat(view.getGravity() & Gravity.VERTICAL_GRAVITY_MASK).isEqualTo(Gravity.CENTER_VERTICAL);
mManager.updateProperties(view, buildStyles("textAlignVertical", null));
assertThat(view.getGravity() & Gravity.VERTICAL_GRAVITY_MASK).isEqualTo(defaultVerticalGravity);
// TextAlign + TextAlignVertical
mManager.updateProperties(
view,
buildStyles("textAlign", "center", "textAlignVertical", "center"));
assertThat(view.getGravity()).isEqualTo(Gravity.CENTER);
mManager.updateProperties(
view,
buildStyles("textAlign", "right", "textAlignVertical", "bottom"));
assertThat(view.getGravity()).isEqualTo(Gravity.RIGHT | Gravity.BOTTOM);
mManager.updateProperties(
view,
buildStyles("textAlign", null, "textAlignVertical", null));
assertThat(view.getGravity()).isEqualTo(defaultGravity);
}
}