/* * Copyright 2015 Google 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.google.template.soy.data.internalutils; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import com.google.common.collect.ImmutableSet; import com.google.template.soy.data.SanitizedContent.ContentKind; import java.util.Set; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; /** * Unit tests for NodeContentKinds. * */ @RunWith(JUnit4.class) public class NodeContentKindsTest { @Test public void testForAttributeValue() { assertEquals(ContentKind.HTML, NodeContentKinds.forAttributeValue("html")); assertEquals(ContentKind.TEXT, NodeContentKinds.forAttributeValue("text")); assertNull(NodeContentKinds.forAttributeValue("blarg")); } @Test public void testGetAttributeValues() { Set<String> attributeValues = NodeContentKinds.getAttributeValues(); assertEquals( ImmutableSet.of("attributes", "css", "html", "js", "text", "uri", "trusted_resource_uri"), attributeValues); } @Test public void testToJsSanitizedContentCtorName() { assertEquals( "goog.soy.data.SanitizedHtml", NodeContentKinds.toJsSanitizedContentCtorName(ContentKind.HTML)); assertEquals( "goog.soy.data.SanitizedHtmlAttribute", NodeContentKinds.toJsSanitizedContentCtorName(ContentKind.ATTRIBUTES)); assertEquals( "goog.soy.data.SanitizedCss", NodeContentKinds.toJsSanitizedContentCtorName(ContentKind.CSS)); assertEquals( "goog.soy.data.SanitizedUri", NodeContentKinds.toJsSanitizedContentCtorName(ContentKind.URI)); assertEquals( "goog.soy.data.SanitizedTrustedResourceUri", NodeContentKinds.toJsSanitizedContentCtorName(ContentKind.TRUSTED_RESOURCE_URI)); assertEquals( "goog.soy.data.SanitizedJs", NodeContentKinds.toJsSanitizedContentCtorName(ContentKind.JS)); assertEquals( "goog.soy.data.UnsanitizedText", NodeContentKinds.toJsSanitizedContentCtorName(ContentKind.TEXT)); } @Test public void testToJsSanitizedContentOrdainer() { assertEquals( "soydata.VERY_UNSAFE.ordainSanitizedHtml", NodeContentKinds.toJsSanitizedContentOrdainer(ContentKind.HTML)); assertEquals( "soydata.VERY_UNSAFE.ordainSanitizedHtmlAttribute", NodeContentKinds.toJsSanitizedContentOrdainer(ContentKind.ATTRIBUTES)); assertEquals( "soydata.VERY_UNSAFE.ordainSanitizedCss", NodeContentKinds.toJsSanitizedContentOrdainer(ContentKind.CSS)); assertEquals( "soydata.VERY_UNSAFE.ordainSanitizedUri", NodeContentKinds.toJsSanitizedContentOrdainer(ContentKind.URI)); assertEquals( "soydata.VERY_UNSAFE.ordainSanitizedTrustedResourceUri", NodeContentKinds.toJsSanitizedContentOrdainer(ContentKind.TRUSTED_RESOURCE_URI)); assertEquals( "soydata.VERY_UNSAFE.ordainSanitizedJs", NodeContentKinds.toJsSanitizedContentOrdainer(ContentKind.JS)); assertEquals( "soydata.markUnsanitizedText", NodeContentKinds.toJsSanitizedContentOrdainer(ContentKind.TEXT)); } @Test public void testToJsSanitizedContentOrdainerForInternalBlocks() { assertEquals( "soydata.VERY_UNSAFE.$$ordainSanitizedHtmlForInternalBlocks", NodeContentKinds.toJsSanitizedContentOrdainerForInternalBlocks(ContentKind.HTML)); assertEquals( "soydata.VERY_UNSAFE.$$ordainSanitizedAttributesForInternalBlocks", NodeContentKinds.toJsSanitizedContentOrdainerForInternalBlocks(ContentKind.ATTRIBUTES)); assertEquals( "soydata.VERY_UNSAFE.$$ordainSanitizedCssForInternalBlocks", NodeContentKinds.toJsSanitizedContentOrdainerForInternalBlocks(ContentKind.CSS)); assertEquals( "soydata.VERY_UNSAFE.$$ordainSanitizedUriForInternalBlocks", NodeContentKinds.toJsSanitizedContentOrdainerForInternalBlocks(ContentKind.URI)); assertEquals( "soydata.VERY_UNSAFE.$$ordainSanitizedTrustedResourceUriForInternalBlocks", NodeContentKinds.toJsSanitizedContentOrdainerForInternalBlocks( ContentKind.TRUSTED_RESOURCE_URI)); assertEquals( "soydata.VERY_UNSAFE.$$ordainSanitizedJsForInternalBlocks", NodeContentKinds.toJsSanitizedContentOrdainerForInternalBlocks(ContentKind.JS)); assertEquals( "soydata.$$markUnsanitizedTextForInternalBlocks", NodeContentKinds.toJsSanitizedContentOrdainerForInternalBlocks(ContentKind.TEXT)); } }