// Copyright 2012 Google Inc. All Rights Reserved.
//
// 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.google.collide.client.code.autocomplete.css;
import com.google.collide.client.testutil.SynchronousTestCase;
import com.google.gwt.core.client.JsArrayString;
public class CssSpecialValuesTest extends SynchronousTestCase {
CssPartialParser cssPartialParser;
@Override
public String getModuleName() {
return "com.google.collide.client.TestCode";
}
@Override
public void gwtSetUp() throws Exception {
super.gwtSetUp();
cssPartialParser = CssPartialParser.getInstance();
}
public void testAngle() {
JsArrayString proposals =
cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("19deg", "<angle>");
assertTrue(proposals.length() > 0);
proposals =
cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("222rad", "<angle>");
assertTrue(proposals.length() > 0);
proposals =
cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("22grad", "<angle>");
assertTrue(proposals.length() > 0);
proposals =
cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("-22grad", "<angle>");
assertTrue(proposals.length() > 0);
proposals =
cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("22.2grad", "<angle>");
assertTrue(proposals.length() > 0);
proposals =
cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("-22.2grad", "<angle>");
assertTrue(proposals.length() > 0);
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("22foo", "<angle>");
assertEquals(0, proposals.length());
proposals =
cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("-22foo", "<angle>");
assertEquals(0, proposals.length());
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("", "<angle>");
assertEquals(0, proposals.length());
}
public void testColor() {
JsArrayString proposals =
cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("olive", "<color>");
assertTrue(proposals.length() > 0);
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("white", "<color>");
assertTrue(proposals.length() > 0);
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("#fa0", "<color>");
assertTrue(proposals.length() > 0);
proposals =
cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("#f9a711", "<color>");
assertTrue(proposals.length() > 0);
proposals =
cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("rgb(10,10,10)", "<color>");
assertTrue(proposals.length() > 0);
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals(
"rgb(10, 10, 10)", "<color>");
assertTrue(proposals.length() > 0);
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals(
"rgb(10%,10%,10%)", "<color>");
assertTrue(proposals.length() > 0);
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals(
"rgb(10%, 10%, 10%)", "<color>");
assertTrue(proposals.length() > 0);
proposals =
cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("blueishgreen", "<color>");
assertEquals(0, proposals.length());
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("rgb()", "<color>");
assertEquals(0, proposals.length());
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("#f", "<color>");
assertEquals(0, proposals.length());
}
public void testCounter() {
JsArrayString proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals(
"counter(par-num, upper-roman)", "<counter>");
assertTrue(proposals.length() > 0);
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals(
"counter(par-num)", "<counter>");
assertTrue(proposals.length() > 0);
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals(
"c(par-num, upper-roman)", "<counter>");
assertEquals(0, proposals.length());
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("foo", "<counter>");
assertEquals(0, proposals.length());
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("", "<counter>");
assertEquals(0, proposals.length());
}
public void testFrequency() {
JsArrayString proposals =
cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("100kHz", "<frequency>");
assertTrue(proposals.length() > 0);
// Note: this seems wrong, but is permissible as per the CSS2 spec.
proposals =
cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("-10Hz", "<frequency>");
assertTrue(proposals.length() > 0);
proposals =
cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("100", "<frequency>");
assertEquals(0, proposals.length());
proposals =
cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("foo", "<frequency>");
assertEquals(0, proposals.length());
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("", "<frequency>");
assertEquals(0, proposals.length());
}
public void testInteger() {
JsArrayString proposals =
cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("19", "<integer>");
assertTrue(proposals.length() > 0);
proposals =
cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("-2200", "<integer>");
assertTrue(proposals.length() > 0);
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("+22", "<integer>");
assertTrue(proposals.length() > 0);
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("vvv", "<integer>");
assertEquals(0, proposals.length());
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("22.", "<integer>");
assertEquals(0, proposals.length());
proposals =
cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("22.2grad", "<integer>");
assertEquals(0, proposals.length());
}
public void testNumber() {
JsArrayString proposals =
cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("19", "<number>");
assertTrue(proposals.length() > 0);
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("22.2", "<number>");
assertTrue(proposals.length() > 0);
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("-22", "<number>");
assertTrue(proposals.length() > 0);
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("+22", "<number>");
assertTrue(proposals.length() > 0);
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("vvv", "<number>");
assertEquals(0, proposals.length());
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("22.", "<number>");
assertEquals(0, proposals.length());
proposals =
cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("22.2grad", "<number>");
assertEquals(0, proposals.length());
}
public void testPercentage() {
JsArrayString proposals =
cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("10em", "<length>");
assertTrue(proposals.length() > 0);
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("0mm", "<length>");
assertTrue(proposals.length() > 0);
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("10px", "<length>");
assertTrue(proposals.length() > 0);
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("foo", "<length>");
assertEquals(0, proposals.length());
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("", "<length>");
assertEquals(0, proposals.length());
}
public void testShape() {
JsArrayString proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals(
"rect(10em, 10em, 10em, 10em)", "<shape>");
assertTrue(proposals.length() > 0);
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals(
"rect(10px, 10px , 10px, 10px)", "<shape>");
assertTrue(proposals.length() > 0);
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals(
"r(10em, 10em, 10em, 10em)", "<shape>");
assertEquals(0, proposals.length());
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("foo", "<shape>");
assertEquals(0, proposals.length());
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("", "<shape>");
assertEquals(0, proposals.length());
}
public void testUri() {
JsArrayString proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals(
"https://mail.google.com", "<uri>");
assertTrue(proposals.length() > 0);
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals(
"http://www.google.com", "<uri>");
assertTrue(proposals.length() > 0);
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("wwww", "<uri>");
assertEquals(0, proposals.length());
proposals = cssPartialParser.checkIfSpecialValueAndGetSpecialValueProposals("", "<uri>");
assertEquals(0, proposals.length());
}
}