Add more CTS tests for the reset of RTL properties

Change-Id: I7261c356f6e3b9fb0e43a46117aadbbf6c2b9a84
diff --git a/tests/tests/view/src/android/view/cts/ViewGroupTest.java b/tests/tests/view/src/android/view/cts/ViewGroupTest.java
index 1fc9a88..b46c031 100644
--- a/tests/tests/view/src/android/view/cts/ViewGroupTest.java
+++ b/tests/tests/view/src/android/view/cts/ViewGroupTest.java
@@ -1661,6 +1661,63 @@
         assertFalse(vg.isGetChildStaticTransformationCalled);
     }
 
+    static public int resetRtlPropertiesCount;
+    static public int resetResolvedLayoutDirectionCount;
+    static public int resetResolvedTextDirectionCount;
+    static public int resetResolvedTextAlignmentCount;
+    static public int resetResolvedPaddingCount;
+    static public int resetResolvedDrawablesCount;
+
+
+    private static void clearRtlCounters() {
+        resetRtlPropertiesCount = 0;
+        resetResolvedLayoutDirectionCount = 0;
+        resetResolvedTextDirectionCount = 0;
+        resetResolvedTextAlignmentCount = 0;
+        resetResolvedPaddingCount = 0;
+        resetResolvedDrawablesCount = 0;
+    }
+
+    public void testResetRtlProperties() {
+        clearRtlCounters();
+
+        MockViewGroup vg = new MockViewGroup(mContext);
+        MockView2 v1 = new MockView2(mContext);
+        MockView2 v2 = new MockView2(mContext);
+
+        MockViewGroup v3 = new MockViewGroup(mContext);
+        MockView2 v4 = new MockView2(mContext);
+
+        v3.addView(v4);
+        assertEquals(1, resetRtlPropertiesCount);
+        assertEquals(1, resetResolvedLayoutDirectionCount);
+        assertEquals(1, resetResolvedTextDirectionCount);
+        assertEquals(1, resetResolvedTextAlignmentCount);
+        assertEquals(1, resetResolvedPaddingCount);
+        assertEquals(1, resetResolvedDrawablesCount);
+
+        clearRtlCounters();
+        vg.addView(v1);
+        vg.addView(v2);
+        vg.addView(v3);
+
+        assertEquals(3, resetRtlPropertiesCount); // for v1 / v2 / v3 only
+        assertEquals(4, resetResolvedLayoutDirectionCount); // for v1 / v2 / v3 / v4
+        assertEquals(4, resetResolvedTextDirectionCount);
+        assertEquals(3, resetResolvedTextAlignmentCount); // for v1 / v2 / v3 only
+        assertEquals(4, resetResolvedPaddingCount);
+        assertEquals(4, resetResolvedDrawablesCount);
+
+        clearRtlCounters();
+        vg.resetRtlProperties();
+        assertEquals(1, resetRtlPropertiesCount); // for vg only
+        assertEquals(5, resetResolvedLayoutDirectionCount); // for all
+        assertEquals(5, resetResolvedTextDirectionCount);
+        assertEquals(1, resetResolvedTextAlignmentCount); // for vg only as TextAlignment is not inherited (default is Gravity)
+        assertEquals(5, resetResolvedPaddingCount);
+        assertEquals(5, resetResolvedDrawablesCount);
+    }
+
     static class MockTextView extends TextView {
 
         public boolean isClearFocusCalled;
@@ -2071,6 +2128,93 @@
         public void setStaticTransformationsEnabled(boolean enabled) {
             super.setStaticTransformationsEnabled(enabled);
         }
+
+        @Override
+        public void resetRtlProperties() {
+            super.resetRtlProperties();
+            resetRtlPropertiesCount++;
+        }
+
+        @Override
+        public void resetResolvedLayoutDirection() {
+            super.resetResolvedLayoutDirection();
+            resetResolvedLayoutDirectionCount++;
+        }
+
+        @Override
+        public void resetResolvedTextDirection() {
+            super.resetResolvedTextDirection();
+            resetResolvedTextDirectionCount++;
+        }
+
+        @Override
+        public void resetResolvedTextAlignment() {
+            super.resetResolvedTextAlignment();
+            resetResolvedTextAlignmentCount++;
+        }
+
+        @Override
+        public void resetResolvedPadding() {
+            super.resetResolvedPadding();
+            resetResolvedPaddingCount++;
+        }
+
+        @Override
+        protected void resetResolvedDrawables() {
+            super.resetResolvedDrawables();
+            resetResolvedDrawablesCount++;
+        }
+    }
+
+    static class MockView2 extends View {
+
+        public MockView2(Context context) {
+            super(context);
+        }
+
+        public MockView2(Context context, AttributeSet attrs) {
+            super(context, attrs);
+        }
+
+        public MockView2(Context context, AttributeSet attrs, int defStyle) {
+            super(context, attrs, defStyle);
+        }
+
+        @Override
+        public void resetRtlProperties() {
+            super.resetRtlProperties();
+            resetRtlPropertiesCount++;
+        }
+
+        @Override
+        public void resetResolvedLayoutDirection() {
+            super.resetResolvedLayoutDirection();
+            resetResolvedLayoutDirectionCount++;
+        }
+
+        @Override
+        public void resetResolvedTextDirection() {
+            super.resetResolvedTextDirection();
+            resetResolvedTextDirectionCount++;
+        }
+
+        @Override
+        public void resetResolvedTextAlignment() {
+            super.resetResolvedTextAlignment();
+            resetResolvedTextAlignmentCount++;
+        }
+
+        @Override
+        public void resetResolvedPadding() {
+            super.resetResolvedPadding();
+            resetResolvedPaddingCount++;
+        }
+
+        @Override
+        protected void resetResolvedDrawables() {
+            super.resetResolvedDrawables();
+            resetResolvedDrawablesCount++;
+        }
     }
 
     public void setResult(int resultCode) {