/******************************************************************************* * Copyright 2012-present Pixate, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ******************************************************************************/ package com.pixate.pxengine.styling.stylers; import android.test.AndroidTestCase; import com.pixate.mocks.MockAdapter; import com.pixate.mocks.MockStyleable; import com.pixate.pxengine.cg.paints.PXPaint; import com.pixate.pxengine.cg.paints.PXSolidPaint; import com.pixate.pxengine.cg.shapes.PXBoxModel; import com.pixate.pxengine.styling.PXRuleSet; import com.pixate.pxengine.styling.PXStyleUtils; import com.pixate.pxengine.styling.PXStylesheet; import com.pixate.pxengine.styling.PXStylesheet.PXStyleSheetOrigin; import com.pixate.pxengine.styling.adapters.PXStyleAdapter; import com.pixate.pxengine.styling.infos.PXBorderInfo.PXBorderStyle; import com.pixate.util.SVGColors; public class PXBorderStylerTests extends AndroidTestCase { private static final int RED = SVGColors.get("red"); private static final int BLUE = SVGColors.get("blue"); private static final int GREEN = SVGColors.get("green"); private static final int YELLOW = SVGColors.get("yellow"); public PXBorderStylerTests() { } @Override protected void setUp() throws Exception { super.setUp(); PXStyleAdapter.initDefaultStyleAdapters(); } public void testBorderWithAllSettings() { PXStylesheet.getStyleSheetFromSource("* {border: 17px dashed red;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(17.0f, boxModel.getBorderTopWidth(), 0.001f); assertEquals(17.0f, boxModel.getBorderRightWidth(), 0.001f); assertEquals(17.0f, boxModel.getBorderBottomWidth(), 0.001f); assertEquals(17.0f, boxModel.getBorderLeftWidth(), 0.001f); assertEquals(RED, ((PXSolidPaint) boxModel.getBorderTopPaint()).getColor()); assertEquals(RED, ((PXSolidPaint) boxModel.getBorderRightPaint()).getColor()); assertEquals(RED, ((PXSolidPaint) boxModel.getBorderBottomPaint()).getColor()); assertEquals(RED, ((PXSolidPaint) boxModel.getBorderLeftPaint()).getColor()); assertEquals(PXBorderStyle.DASHED, boxModel.getBorderTopStyle()); assertEquals(PXBorderStyle.DASHED, boxModel.getBorderRightStyle()); assertEquals(PXBorderStyle.DASHED, boxModel.getBorderBottomStyle()); assertEquals(PXBorderStyle.DASHED, boxModel.getBorderLeftStyle()); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderWithOnlyWidth() { PXStylesheet.getStyleSheetFromSource("* {border: 18px;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(18.0f, boxModel.getBorderTopWidth(), 0.001f); assertEquals(18.0f, boxModel.getBorderRightWidth(), 0.001f); assertEquals(18.0f, boxModel.getBorderBottomWidth(), 0.001f); assertEquals(18.0f, boxModel.getBorderLeftWidth(), 0.001f); assertNull(boxModel.getBorderTopPaint()); assertNull(boxModel.getBorderRightPaint()); assertNull(boxModel.getBorderBottomPaint()); assertNull(boxModel.getBorderLeftPaint()); assertNull(boxModel.getBorderTopStyle()); assertNull(boxModel.getBorderRightStyle()); assertNull(boxModel.getBorderBottomStyle()); assertNull(boxModel.getBorderLeftStyle()); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderWithOnlyStyle() { PXStylesheet.getStyleSheetFromSource("* {border: dotted;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(0.0f, boxModel.getBorderTopWidth(), 0.001f); assertEquals(0.0f, boxModel.getBorderRightWidth(), 0.001f); assertEquals(0.0f, boxModel.getBorderBottomWidth(), 0.001f); assertEquals(0.0f, boxModel.getBorderLeftWidth(), 0.001f); assertNull(boxModel.getBorderTopPaint()); assertNull(boxModel.getBorderRightPaint()); assertNull(boxModel.getBorderBottomPaint()); assertNull(boxModel.getBorderLeftPaint()); assertEquals(PXBorderStyle.DOTTED, boxModel.getBorderTopStyle()); assertEquals(PXBorderStyle.DOTTED, boxModel.getBorderRightStyle()); assertEquals(PXBorderStyle.DOTTED, boxModel.getBorderBottomStyle()); assertEquals(PXBorderStyle.DOTTED, boxModel.getBorderLeftStyle()); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderWithOnlyColor() { PXStylesheet.getStyleSheetFromSource("* {border: blue;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(0.0f, boxModel.getBorderTopWidth(), 0.001f); assertEquals(0.0f, boxModel.getBorderRightWidth(), 0.001f); assertEquals(0.0f, boxModel.getBorderBottomWidth(), 0.001f); assertEquals(0.0f, boxModel.getBorderLeftWidth(), 0.001f); PXPaint paint = boxModel.getBorderTopPaint(); assertNotNull(paint); assertEquals(BLUE, ((PXSolidPaint) paint).getColor()); paint = boxModel.getBorderRightPaint(); assertNotNull(paint); assertEquals(BLUE, ((PXSolidPaint) paint).getColor()); paint = boxModel.getBorderBottomPaint(); assertNotNull(paint); assertEquals(BLUE, ((PXSolidPaint) paint).getColor()); paint = boxModel.getBorderLeftPaint(); assertNotNull(paint); assertEquals(BLUE, ((PXSolidPaint) paint).getColor()); assertNull(boxModel.getBorderTopStyle()); assertNull(boxModel.getBorderRightStyle()); assertNull(boxModel.getBorderBottomStyle()); assertNull(boxModel.getBorderLeftStyle()); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderTopWithAllSettings() { PXStylesheet.getStyleSheetFromSource("* {border-top: 17px dashed red;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(17.0f, boxModel.getBorderTopWidth(), 0.001f); assertEquals(0.0f, boxModel.getBorderRightWidth(), 0.001f); assertEquals(0.0f, boxModel.getBorderBottomWidth(), 0.001f); assertEquals(0.0f, boxModel.getBorderLeftWidth(), 0.001f); assertEquals(RED, ((PXSolidPaint) boxModel.getBorderTopPaint()).getColor()); assertNull(boxModel.getBorderRightPaint()); assertNull(boxModel.getBorderBottomPaint()); assertNull(boxModel.getBorderLeftPaint()); assertEquals(PXBorderStyle.DASHED, boxModel.getBorderTopStyle()); assertNull(boxModel.getBorderRightStyle()); assertNull(boxModel.getBorderBottomStyle()); assertNull(boxModel.getBorderLeftStyle()); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderRightWithAllSettings() { PXStylesheet.getStyleSheetFromSource("* {border-right: 17px dashed red;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(0.0f, boxModel.getBorderTopWidth(), 0.001f); assertEquals(17.0f, boxModel.getBorderRightWidth(), 0.001f); assertEquals(0.0f, boxModel.getBorderBottomWidth(), 0.001f); assertEquals(0.0f, boxModel.getBorderLeftWidth(), 0.001f); assertNull(boxModel.getBorderTopPaint()); assertEquals(RED, ((PXSolidPaint) boxModel.getBorderRightPaint()).getColor()); assertNull(boxModel.getBorderBottomPaint()); assertNull(boxModel.getBorderLeftPaint()); assertNull(boxModel.getBorderTopStyle()); assertEquals(PXBorderStyle.DASHED, boxModel.getBorderRightStyle()); assertNull(boxModel.getBorderBottomStyle()); assertNull(boxModel.getBorderLeftStyle()); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderBottomWithAllSettings() { PXStylesheet.getStyleSheetFromSource("* {border-bottom: 17px dashed red;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(0.0f, boxModel.getBorderTopWidth(), 0.001f); assertEquals(0.0f, boxModel.getBorderRightWidth(), 0.001f); assertEquals(17.0f, boxModel.getBorderBottomWidth(), 0.001f); assertEquals(0.0f, boxModel.getBorderLeftWidth(), 0.001f); assertNull(boxModel.getBorderTopPaint()); assertNull(boxModel.getBorderRightPaint()); assertEquals(RED, ((PXSolidPaint) boxModel.getBorderBottomPaint()).getColor()); assertNull(boxModel.getBorderLeftPaint()); assertNull(boxModel.getBorderTopStyle()); assertNull(boxModel.getBorderRightStyle()); assertEquals(PXBorderStyle.DASHED, boxModel.getBorderBottomStyle()); assertNull(boxModel.getBorderLeftStyle()); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderLeftWithAllSettings() { PXStylesheet.getStyleSheetFromSource("* {border-left: 17px dashed red;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(0.0f, boxModel.getBorderTopWidth(), 0.001f); assertEquals(0.0f, boxModel.getBorderRightWidth(), 0.001f); assertEquals(0.0f, boxModel.getBorderBottomWidth(), 0.001f); assertEquals(17.0f, boxModel.getBorderLeftWidth(), 0.001f); assertNull(boxModel.getBorderTopPaint()); assertNull(boxModel.getBorderRightPaint()); assertNull(boxModel.getBorderBottomPaint()); assertEquals(RED, ((PXSolidPaint) boxModel.getBorderLeftPaint()).getColor()); assertNull(boxModel.getBorderTopStyle()); assertNull(boxModel.getBorderRightStyle()); assertNull(boxModel.getBorderBottomStyle()); assertEquals(PXBorderStyle.DASHED, boxModel.getBorderLeftStyle()); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderRadiusAllOneValue() { PXStylesheet.getStyleSheetFromSource("* {border-radius: 5px;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(5.0f, boxModel.getRadiusTopLeft().width, 0.001f); assertEquals(5.0f, boxModel.getRadiusTopRight().width, 0.001f); assertEquals(5.0f, boxModel.getRadiusBottomRight().width, 0.001f); assertEquals(5.0f, boxModel.getRadiusBottomLeft().width, 0.001f); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderRadiusAllTwoValues() { PXStylesheet.getStyleSheetFromSource("* {border-radius: 3px/4px;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(3.0f, boxModel.getRadiusTopLeft().width, 0.001f); assertEquals(3.0f, boxModel.getRadiusTopRight().width, 0.001f); assertEquals(3.0f, boxModel.getRadiusBottomRight().width, 0.001f); assertEquals(3.0f, boxModel.getRadiusBottomLeft().width, 0.001f); assertEquals(4.0f, boxModel.getRadiusTopLeft().height, 0.001f); assertEquals(4.0f, boxModel.getRadiusTopRight().height, 0.001f); assertEquals(4.0f, boxModel.getRadiusBottomRight().height, 0.001f); assertEquals(4.0f, boxModel.getRadiusBottomLeft().height, 0.001f); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderRadiusTopLeftOneValue() { PXStylesheet.getStyleSheetFromSource("* {border-top-left-radius: 1px;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(1.0f, boxModel.getRadiusTopLeft().width, 0.001f); assertEquals(0.0f, boxModel.getRadiusTopRight().width, 0.001f); assertEquals(0.0f, boxModel.getRadiusBottomRight().width, 0.001f); assertEquals(0.0f, boxModel.getRadiusBottomLeft().width, 0.001f); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderRadiusTopLeftTwoValues() { PXStylesheet.getStyleSheetFromSource("* {border-top-left-radius: 1px 4px;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(1.0f, boxModel.getRadiusTopLeft().width, 0.001f); assertEquals(0.0f, boxModel.getRadiusTopRight().width, 0.001f); assertEquals(0.0f, boxModel.getRadiusBottomRight().width, 0.001f); assertEquals(0.0f, boxModel.getRadiusBottomLeft().width, 0.001f); assertEquals(4.0f, boxModel.getRadiusTopLeft().height, 0.001f); assertEquals(0.0f, boxModel.getRadiusTopRight().height, 0.001f); assertEquals(0.0f, boxModel.getRadiusBottomRight().height, 0.001f); assertEquals(0.0f, boxModel.getRadiusBottomLeft().height, 0.001f); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderRadiusTopRightOneValue() { PXStylesheet.getStyleSheetFromSource("* {border-top-right-radius: 1px;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(0.0f, boxModel.getRadiusTopLeft().width, 0.001f); assertEquals(1.0f, boxModel.getRadiusTopRight().width, 0.001f); assertEquals(0.0f, boxModel.getRadiusBottomRight().width, 0.001f); assertEquals(0.0f, boxModel.getRadiusBottomLeft().width, 0.001f); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderRadiusTopRightTwoValues() { PXStylesheet.getStyleSheetFromSource("* {border-top-right-radius: 1px 4px;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(0.0f, boxModel.getRadiusTopLeft().width, 0.001f); assertEquals(1.0f, boxModel.getRadiusTopRight().width, 0.001f); assertEquals(0.0f, boxModel.getRadiusBottomRight().width, 0.001f); assertEquals(0.0f, boxModel.getRadiusBottomLeft().width, 0.001f); assertEquals(0.0f, boxModel.getRadiusTopLeft().height, 0.001f); assertEquals(4.0f, boxModel.getRadiusTopRight().height, 0.001f); assertEquals(0.0f, boxModel.getRadiusBottomRight().height, 0.001f); assertEquals(0.0f, boxModel.getRadiusBottomLeft().height, 0.001f); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderRadiusBottomRightOneValue() { PXStylesheet.getStyleSheetFromSource("* {border-bottom-right-radius: 1px;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(0.0f, boxModel.getRadiusTopLeft().width, 0.001f); assertEquals(0.0f, boxModel.getRadiusTopRight().width, 0.001f); assertEquals(1.0f, boxModel.getRadiusBottomRight().width, 0.001f); assertEquals(0.0f, boxModel.getRadiusBottomLeft().width, 0.001f); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderRadiusBottomRightTwoValues() { PXStylesheet.getStyleSheetFromSource("* {border-bottom-right-radius: 1px 4px;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(0.0f, boxModel.getRadiusTopLeft().width, 0.001f); assertEquals(0.0f, boxModel.getRadiusTopRight().width, 0.001f); assertEquals(1.0f, boxModel.getRadiusBottomRight().width, 0.001f); assertEquals(0.0f, boxModel.getRadiusBottomLeft().width, 0.001f); assertEquals(0.0f, boxModel.getRadiusTopLeft().height, 0.001f); assertEquals(0.0f, boxModel.getRadiusTopRight().height, 0.001f); assertEquals(4.0f, boxModel.getRadiusBottomRight().height, 0.001f); assertEquals(0.0f, boxModel.getRadiusBottomLeft().height, 0.001f); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderRadiusBottomLeftOneValue() { PXStylesheet.getStyleSheetFromSource("* {border-bottom-left-radius: 1px;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(0.0f, boxModel.getRadiusTopLeft().width, 0.001f); assertEquals(0.0f, boxModel.getRadiusTopRight().width, 0.001f); assertEquals(0.0f, boxModel.getRadiusBottomRight().width, 0.001f); assertEquals(1.0f, boxModel.getRadiusBottomLeft().width, 0.001f); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderRadiusBottomLeftTwoValues() { PXStylesheet.getStyleSheetFromSource("* {border-bottom-left-radius: 1px 4px;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(0.0f, boxModel.getRadiusTopLeft().width, 0.001f); assertEquals(0.0f, boxModel.getRadiusTopRight().width, 0.001f); assertEquals(0.0f, boxModel.getRadiusBottomRight().width, 0.001f); assertEquals(1.0f, boxModel.getRadiusBottomLeft().width, 0.001f); assertEquals(0.0f, boxModel.getRadiusTopLeft().height, 0.001f); assertEquals(0.0f, boxModel.getRadiusTopRight().height, 0.001f); assertEquals(0.0f, boxModel.getRadiusBottomRight().height, 0.001f); assertEquals(4.0f, boxModel.getRadiusBottomLeft().height, 0.001f); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderWidthAllSingleValue() { PXStylesheet.getStyleSheetFromSource("* {border-width: 1px;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(1.0f, boxModel.getBorderTopWidth(), 0.001f); assertEquals(1.0f, boxModel.getBorderRightWidth(), 0.001f); assertEquals(1.0f, boxModel.getBorderBottomWidth(), 0.001f); assertEquals(1.0f, boxModel.getBorderLeftWidth(), 0.001f); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderWidthAllTwoValues() { PXStylesheet.getStyleSheetFromSource("* {border-width: 1px 2px;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(1.0f, boxModel.getBorderTopWidth(), 0.001f); assertEquals(2.0f, boxModel.getBorderRightWidth(), 0.001f); assertEquals(1.0f, boxModel.getBorderBottomWidth(), 0.001f); assertEquals(2.0f, boxModel.getBorderLeftWidth(), 0.001f); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderWidthAllThreeValues() { PXStylesheet.getStyleSheetFromSource("* {border-width: 1px 2px 3px;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(1.0f, boxModel.getBorderTopWidth(), 0.001f); assertEquals(2.0f, boxModel.getBorderRightWidth(), 0.001f); assertEquals(3.0f, boxModel.getBorderBottomWidth(), 0.001f); assertEquals(2.0f, boxModel.getBorderLeftWidth(), 0.001f); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderWidthAllFourValues() { PXStylesheet.getStyleSheetFromSource("* {border-width: 1px 2px 3px 4px;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(1.0f, boxModel.getBorderTopWidth(), 0.001f); assertEquals(2.0f, boxModel.getBorderRightWidth(), 0.001f); assertEquals(3.0f, boxModel.getBorderBottomWidth(), 0.001f); assertEquals(4.0f, boxModel.getBorderLeftWidth(), 0.001f); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderTopWidth() { PXStylesheet.getStyleSheetFromSource("* {border-top-width: 1px;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(1.0f, boxModel.getBorderTopWidth(), 0.001f); assertEquals(0.0f, boxModel.getBorderRightWidth(), 0.001f); assertEquals(0.0f, boxModel.getBorderBottomWidth(), 0.001f); assertEquals(0.0f, boxModel.getBorderLeftWidth(), 0.001f); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderRightWidth() { PXStylesheet.getStyleSheetFromSource("* {border-right-width: 1px;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(0.0f, boxModel.getBorderTopWidth(), 0.001f); assertEquals(1.0f, boxModel.getBorderRightWidth(), 0.001f); assertEquals(0.0f, boxModel.getBorderBottomWidth(), 0.001f); assertEquals(0.0f, boxModel.getBorderLeftWidth(), 0.001f); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderBottomWidth() { PXStylesheet.getStyleSheetFromSource("* {border-bottom-width: 1px;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(0.0f, boxModel.getBorderTopWidth(), 0.001f); assertEquals(0.0f, boxModel.getBorderRightWidth(), 0.001f); assertEquals(1.0f, boxModel.getBorderBottomWidth(), 0.001f); assertEquals(0.0f, boxModel.getBorderLeftWidth(), 0.001f); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderLeftWidth() { PXStylesheet.getStyleSheetFromSource("* {border-left-width: 1px;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertEquals(0.0f, boxModel.getBorderTopWidth(), 0.001f); assertEquals(0.0f, boxModel.getBorderRightWidth(), 0.001f); assertEquals(0.0f, boxModel.getBorderBottomWidth(), 0.001f); assertEquals(1.0f, boxModel.getBorderLeftWidth(), 0.001f); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderColorAllSingleValue() { PXStylesheet.getStyleSheetFromSource("* {border-color: red;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); PXPaint paint = boxModel.getBorderTopPaint(); assertNotNull(paint); assertEquals(RED, ((PXSolidPaint) paint).getColor()); paint = boxModel.getBorderRightPaint(); assertNotNull(paint); assertEquals(RED, ((PXSolidPaint) paint).getColor()); paint = boxModel.getBorderBottomPaint(); assertNotNull(paint); assertEquals(RED, ((PXSolidPaint) paint).getColor()); paint = boxModel.getBorderLeftPaint(); assertNotNull(paint); assertEquals(RED, ((PXSolidPaint) paint).getColor()); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderColorAllTwoValues() { PXStylesheet.getStyleSheetFromSource("* {border-color: red blue;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); PXPaint paint = boxModel.getBorderTopPaint(); assertNotNull(paint); assertEquals(RED, ((PXSolidPaint) paint).getColor()); paint = boxModel.getBorderRightPaint(); assertNotNull(paint); assertEquals(BLUE, ((PXSolidPaint) paint).getColor()); paint = boxModel.getBorderBottomPaint(); assertNotNull(paint); assertEquals(RED, ((PXSolidPaint) paint).getColor()); paint = boxModel.getBorderLeftPaint(); assertNotNull(paint); assertEquals(BLUE, ((PXSolidPaint) paint).getColor()); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderColorAllThreeValues() { PXStylesheet.getStyleSheetFromSource("* {border-color: red blue green;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); PXPaint paint = boxModel.getBorderTopPaint(); assertNotNull(paint); assertEquals(RED, ((PXSolidPaint) paint).getColor()); paint = boxModel.getBorderRightPaint(); assertNotNull(paint); assertEquals(BLUE, ((PXSolidPaint) paint).getColor()); paint = boxModel.getBorderBottomPaint(); assertNotNull(paint); assertEquals(GREEN, ((PXSolidPaint) paint).getColor()); paint = boxModel.getBorderLeftPaint(); assertNotNull(paint); assertEquals(BLUE, ((PXSolidPaint) paint).getColor()); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderColorAllFourValues() { PXStylesheet.getStyleSheetFromSource("* {border-color: red blue green yellow;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); PXPaint paint = boxModel.getBorderTopPaint(); assertNotNull(paint); assertEquals(RED, ((PXSolidPaint) paint).getColor()); paint = boxModel.getBorderRightPaint(); assertNotNull(paint); assertEquals(BLUE, ((PXSolidPaint) paint).getColor()); paint = boxModel.getBorderBottomPaint(); assertNotNull(paint); assertEquals(GREEN, ((PXSolidPaint) paint).getColor()); paint = boxModel.getBorderLeftPaint(); assertNotNull(paint); assertEquals(YELLOW, ((PXSolidPaint) paint).getColor()); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderTopColor() { PXStylesheet.getStyleSheetFromSource("* {border-top-color: red;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); PXPaint paint = boxModel.getBorderTopPaint(); assertNotNull(paint); assertEquals(RED, ((PXSolidPaint) paint).getColor()); assertNull(boxModel.getBorderRightPaint()); assertNull(boxModel.getBorderBottomPaint()); assertNull(boxModel.getBorderLeftPaint()); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderRightColor() { PXStylesheet.getStyleSheetFromSource("* {border-right-color: red;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertNull(boxModel.getBorderTopPaint()); PXPaint paint = boxModel.getBorderRightPaint(); assertNotNull(paint); assertEquals(RED, ((PXSolidPaint) paint).getColor()); assertNull(boxModel.getBorderBottomPaint()); assertNull(boxModel.getBorderLeftPaint()); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderBottomColor() { PXStylesheet.getStyleSheetFromSource("* {border-bottom-color: red;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertNull(boxModel.getBorderTopPaint()); assertNull(boxModel.getBorderRightPaint()); PXPaint paint = boxModel.getBorderBottomPaint(); assertNotNull(paint); assertEquals(RED, ((PXSolidPaint) paint).getColor()); assertNull(boxModel.getBorderLeftPaint()); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderLeftColor() { PXStylesheet.getStyleSheetFromSource("* {border-left-color: red;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertNull(boxModel.getBorderTopPaint()); assertNull(boxModel.getBorderRightPaint()); assertNull(boxModel.getBorderBottomPaint()); PXPaint paint = boxModel.getBorderLeftPaint(); assertNotNull(paint); assertEquals(RED, ((PXSolidPaint) paint).getColor()); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderStyleAllSingleValue() { PXStylesheet.getStyleSheetFromSource("* {border-style: dashed;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); PXBorderStyle style = boxModel.getBorderTopStyle(); assertNotNull(style); assertEquals(PXBorderStyle.DASHED, style); style = boxModel.getBorderRightStyle(); assertNotNull(style); assertEquals(PXBorderStyle.DASHED, style); style = boxModel.getBorderBottomStyle(); assertNotNull(style); assertEquals(PXBorderStyle.DASHED, style); style = boxModel.getBorderLeftStyle(); assertNotNull(style); assertEquals(PXBorderStyle.DASHED, style); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderStyleAllTwoValues() { PXStylesheet.getStyleSheetFromSource("* {border-style: dashed dotted;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); PXBorderStyle style = boxModel.getBorderTopStyle(); assertNotNull(style); assertEquals(PXBorderStyle.DASHED, style); style = boxModel.getBorderRightStyle(); assertNotNull(style); assertEquals(PXBorderStyle.DOTTED, style); style = boxModel.getBorderBottomStyle(); assertNotNull(style); assertEquals(PXBorderStyle.DASHED, style); style = boxModel.getBorderLeftStyle(); assertNotNull(style); assertEquals(PXBorderStyle.DOTTED, style); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderStyleAllThreeValues() { PXStylesheet.getStyleSheetFromSource("* {border-style: dashed dotted double;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); PXBorderStyle style = boxModel.getBorderTopStyle(); assertNotNull(style); assertEquals(PXBorderStyle.DASHED, style); style = boxModel.getBorderRightStyle(); assertNotNull(style); assertEquals(PXBorderStyle.DOTTED, style); style = boxModel.getBorderBottomStyle(); assertNotNull(style); assertEquals(PXBorderStyle.DOUBLE, style); style = boxModel.getBorderLeftStyle(); assertNotNull(style); assertEquals(PXBorderStyle.DOTTED, style); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderStyleAllFourValues() { PXStylesheet.getStyleSheetFromSource("* {border-style: dashed dotted double solid;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); PXBorderStyle style = boxModel.getBorderTopStyle(); assertNotNull(style); assertEquals(PXBorderStyle.DASHED, style); style = boxModel.getBorderRightStyle(); assertNotNull(style); assertEquals(PXBorderStyle.DOTTED, style); style = boxModel.getBorderBottomStyle(); assertNotNull(style); assertEquals(PXBorderStyle.DOUBLE, style); style = boxModel.getBorderLeftStyle(); assertNotNull(style); assertEquals(PXBorderStyle.SOLID, style); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderTopStyle() { PXStylesheet.getStyleSheetFromSource("* {border-top-style: dashed;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); PXBorderStyle style = boxModel.getBorderTopStyle(); assertNotNull(style); assertEquals(PXBorderStyle.DASHED, style); assertNull(boxModel.getBorderRightStyle()); assertNull(boxModel.getBorderBottomStyle()); assertNull(boxModel.getBorderLeftStyle()); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderRightStyle() { PXStylesheet.getStyleSheetFromSource("* {border-right-style: dashed;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertNull(boxModel.getBorderTopStyle()); PXBorderStyle style = boxModel.getBorderRightStyle(); assertNotNull(style); assertEquals(PXBorderStyle.DASHED, style); assertNull(boxModel.getBorderBottomStyle()); assertNull(boxModel.getBorderLeftStyle()); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderBottomStyle() { PXStylesheet.getStyleSheetFromSource("* {border-bottom-style: dashed;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertNull(boxModel.getBorderTopStyle()); assertNull(boxModel.getBorderRightStyle()); PXBorderStyle style = boxModel.getBorderBottomStyle(); assertNotNull(style); assertEquals(PXBorderStyle.DASHED, style); assertNull(boxModel.getBorderLeftStyle()); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } public void testBorderLeftStyle() { PXStylesheet.getStyleSheetFromSource("* {border-left-style: dashed;}", PXStyleSheetOrigin.APPLICATION); MockStyleable styleable = new MockStyleable(); MockAdapter adapter = new MockAdapter(PXBorderStyler.getInstance()) { @Override public void updateStyle(PXRuleSet ruleSet, PXStylerContext context) { super.updateStyle(ruleSet, context); PXBoxModel boxModel = context.getBoxModel(); assertNull(boxModel.getBorderTopStyle()); assertNull(boxModel.getBorderRightStyle()); assertNull(boxModel.getBorderBottomStyle()); PXBorderStyle style = boxModel.getBorderLeftStyle(); assertNotNull(style); assertEquals(PXBorderStyle.DASHED, style); } }; PXStyleAdapter.registerStyleAdapter(MockStyleable.class.getName(), adapter); PXStyleUtils.updateStyle(styleable); } }