public void testParseRgbArgumentsOutOfRange() { // Surprisingly, these are valid according to W3C and should be clamped // to valid values. CssFunctionNode function = createRgbFunctionNode("1", "1", "300"); assertEquals("#0101ff", ColorValueOptimizer.parseRgbArguments(function)); function = createRgbFunctionNode("-10", "1", "1"); assertEquals("#000101", ColorValueOptimizer.parseRgbArguments(function)); }
public void testParseRgbArgumentsBadArgs() { CssFunctionNode function = new CssFunctionNode(CssFunctionNode.Function.byName("rgb"), null /* sourceCodeLocation */); List<CssValueNode> values = Lists.newArrayList(); values.add(createNumericNode("0")); CssFunctionArgumentsNode args = new CssFunctionArgumentsNode(values); function.setArguments(args); try { ColorValueOptimizer.parseRgbArguments(function); fail("Too few arguments to rgb function; should have thrown."); } catch (NumberFormatException expected) { // Exception is expected. } }
public void testParseRgbArguments() { CssFunctionNode function = createRgbFunctionNode("0", "15", "255"); assertEquals("#000fff", ColorValueOptimizer.parseRgbArguments(function)); function = createRgbFunctionNode("0%", "50%", "100%"); assertEquals("#0080ff", ColorValueOptimizer.parseRgbArguments(function)); }