Merge "Fix bug #11586041 Regression: text truncation in Clock" into klp-dev
diff --git a/tests/res/drawable/padding_0.9.png b/tests/res/drawable/padding_0.9.png
new file mode 100644
index 0000000..0127bf4
--- /dev/null
+++ b/tests/res/drawable/padding_0.9.png
Binary files differ
diff --git a/tests/res/layout/view_layout.xml b/tests/res/layout/view_layout.xml
index 4443ba8..cb444a5 100644
--- a/tests/res/layout/view_layout.xml
+++ b/tests/res/layout/view_layout.xml
@@ -50,4 +50,39 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
+ <android.view.cts.MockView
+ android:id="@+id/mock_view_padding_full"
+ android:layout_width="200px"
+ android:layout_height="200px"
+ android:padding="0dp"
+ android:background="@drawable/padding_0" />
+
+ <android.view.cts.MockView
+ android:id="@+id/mock_view_padding_left"
+ android:layout_width="200px"
+ android:layout_height="200px"
+ android:paddingLeft="0dp"
+ android:background="@drawable/padding_0" />
+
+ <android.view.cts.MockView
+ android:id="@+id/mock_view_padding_right"
+ android:layout_width="200px"
+ android:layout_height="200px"
+ android:paddingRight="0dp"
+ android:background="@drawable/padding_0" />
+
+ <android.view.cts.MockView
+ android:id="@+id/mock_view_padding_top"
+ android:layout_width="200px"
+ android:layout_height="200px"
+ android:paddingTop="0dp"
+ android:background="@drawable/padding_0" />
+
+ <android.view.cts.MockView
+ android:id="@+id/mock_view_padding_bottom"
+ android:layout_width="200px"
+ android:layout_height="200px"
+ android:paddingBottom="0dp"
+ android:background="@drawable/padding_0" />
+
</LinearLayout>
diff --git a/tests/tests/view/src/android/view/cts/ViewTest.java b/tests/tests/view/src/android/view/cts/ViewTest.java
index 5913892..5e0dbe9 100644
--- a/tests/tests/view/src/android/view/cts/ViewTest.java
+++ b/tests/tests/view/src/android/view/cts/ViewTest.java
@@ -2744,6 +2744,103 @@
assertFalse(view.isPaddingOffsetRequired());
}
+ @UiThreadTest
+ public void testPadding() {
+ MockView view = (MockView) mActivity.findViewById(R.id.mock_view_padding_full);
+ Drawable background = view.getBackground();
+ Rect backgroundPadding = new Rect();
+ background.getPadding(backgroundPadding);
+
+ // There is some background with a non null padding
+ assertNotNull(background);
+ assertTrue(backgroundPadding.left != 0);
+ assertTrue(backgroundPadding.right != 0);
+ assertTrue(backgroundPadding.top != 0);
+ assertTrue(backgroundPadding.bottom != 0);
+
+ // The XML defines android:padding="0dp" and that should be the resulting padding
+ assertEquals(0, view.getPaddingLeft());
+ assertEquals(0, view.getPaddingTop());
+ assertEquals(0, view.getPaddingRight());
+ assertEquals(0, view.getPaddingBottom());
+
+ // LEFT case
+ view = (MockView) mActivity.findViewById(R.id.mock_view_padding_left);
+ background = view.getBackground();
+ backgroundPadding = new Rect();
+ background.getPadding(backgroundPadding);
+
+ // There is some background with a non null padding
+ assertNotNull(background);
+ assertTrue(backgroundPadding.left != 0);
+ assertTrue(backgroundPadding.right != 0);
+ assertTrue(backgroundPadding.top != 0);
+ assertTrue(backgroundPadding.bottom != 0);
+
+ // The XML defines android:paddingLeft="0dp" and that should be the resulting padding
+ assertEquals(0, view.getPaddingLeft());
+ assertEquals(backgroundPadding.top, view.getPaddingTop());
+ assertEquals(backgroundPadding.right, view.getPaddingRight());
+ assertEquals(backgroundPadding.bottom, view.getPaddingBottom());
+
+ // RIGHT case
+ view = (MockView) mActivity.findViewById(R.id.mock_view_padding_right);
+ background = view.getBackground();
+ backgroundPadding = new Rect();
+ background.getPadding(backgroundPadding);
+
+ // There is some background with a non null padding
+ assertNotNull(background);
+ assertTrue(backgroundPadding.left != 0);
+ assertTrue(backgroundPadding.right != 0);
+ assertTrue(backgroundPadding.top != 0);
+ assertTrue(backgroundPadding.bottom != 0);
+
+ // The XML defines android:paddingRight="0dp" and that should be the resulting padding
+ assertEquals(backgroundPadding.left, view.getPaddingLeft());
+ assertEquals(backgroundPadding.top, view.getPaddingTop());
+ assertEquals(0, view.getPaddingRight());
+ assertEquals(backgroundPadding.bottom, view.getPaddingBottom());
+
+ // TOP case
+ view = (MockView) mActivity.findViewById(R.id.mock_view_padding_top);
+ background = view.getBackground();
+ backgroundPadding = new Rect();
+ background.getPadding(backgroundPadding);
+
+ // There is some background with a non null padding
+ assertNotNull(background);
+ assertTrue(backgroundPadding.left != 0);
+ assertTrue(backgroundPadding.right != 0);
+ assertTrue(backgroundPadding.top != 0);
+ assertTrue(backgroundPadding.bottom != 0);
+
+ // The XML defines android:paddingTop="0dp" and that should be the resulting padding
+ assertEquals(backgroundPadding.left, view.getPaddingLeft());
+ assertEquals(0, view.getPaddingTop());
+ assertEquals(backgroundPadding.right, view.getPaddingRight());
+ assertEquals(backgroundPadding.bottom, view.getPaddingBottom());
+
+ // BOTTOM case
+ view = (MockView) mActivity.findViewById(R.id.mock_view_padding_bottom);
+ background = view.getBackground();
+ backgroundPadding = new Rect();
+ background.getPadding(backgroundPadding);
+
+ // There is some background with a non null padding
+ assertNotNull(background);
+ assertTrue(backgroundPadding.left != 0);
+ assertTrue(backgroundPadding.right != 0);
+ assertTrue(backgroundPadding.top != 0);
+ assertTrue(backgroundPadding.bottom != 0);
+
+ // The XML defines android:paddingBottom="0dp" and that should be the resulting padding
+ assertEquals(backgroundPadding.left, view.getPaddingLeft());
+ assertEquals(backgroundPadding.top, view.getPaddingTop());
+ assertEquals(backgroundPadding.right, view.getPaddingRight());
+ assertEquals(0, view.getPaddingBottom());
+ }
+
public void testGetWindowVisibleDisplayFrame() {
Rect outRect = new Rect();
View view = new View(mActivity);