diff options
Diffstat (limited to 'src/test/java')
4 files changed, 104 insertions, 25 deletions
diff --git a/src/test/java/com/google/devtools/build/docgen/BUILD b/src/test/java/com/google/devtools/build/docgen/BUILD index 81c2fa612b..7d04dec7ea 100644 --- a/src/test/java/com/google/devtools/build/docgen/BUILD +++ b/src/test/java/com/google/devtools/build/docgen/BUILD @@ -29,6 +29,7 @@ java_library( "DocCheckerUtilsTest.java", "RuleDocumentationAttributeTest.java", "RuleDocumentationTest.java", + "RuleLinkExpanderTest.java", "SkylarkDocumentationTest.java", ], deps = [ diff --git a/src/test/java/com/google/devtools/build/docgen/RuleDocumentationAttributeTest.java b/src/test/java/com/google/devtools/build/docgen/RuleDocumentationAttributeTest.java index 89bb1bbf15..03b270c4fc 100644 --- a/src/test/java/com/google/devtools/build/docgen/RuleDocumentationAttributeTest.java +++ b/src/test/java/com/google/devtools/build/docgen/RuleDocumentationAttributeTest.java @@ -39,69 +39,67 @@ public class RuleDocumentationAttributeTest { @Test public void testDirectChild() { RuleDocumentationAttribute attr1 = RuleDocumentationAttribute.create( - IntermediateRule.class, "", "", 0, NO_FLAGS); + IntermediateRule.class, "", "", 0, "", NO_FLAGS); assertEquals(1, attr1.getDefinitionClassAncestryLevel(TestRule.class)); } @Test public void testTransitiveChild() { RuleDocumentationAttribute attr2 = RuleDocumentationAttribute.create( - BaseRule.class, "", "", 0, NO_FLAGS); + BaseRule.class, "", "", 0, "", NO_FLAGS); assertEquals(2, attr2.getDefinitionClassAncestryLevel(TestRule.class)); } @Test public void testClassIsNotChild() { RuleDocumentationAttribute attr2 = RuleDocumentationAttribute.create( - IntermediateRule.class, "", "", 0, NO_FLAGS); + IntermediateRule.class, "", "", 0, "", NO_FLAGS); assertEquals(-1, attr2.getDefinitionClassAncestryLevel(BaseRule.class)); } @Test public void testClassIsSame() { RuleDocumentationAttribute attr3 = RuleDocumentationAttribute.create( - TestRule.class, "", "", 0, NO_FLAGS); + TestRule.class, "", "", 0, "", NO_FLAGS); assertEquals(0, attr3.getDefinitionClassAncestryLevel(TestRule.class)); } @Test public void testHasFlags() { RuleDocumentationAttribute attr = RuleDocumentationAttribute.create( - TestRule.class, "", "", 0, ImmutableSet.<String>of("SOME_FLAG")); + TestRule.class, "", "", 0, "", ImmutableSet.<String>of("SOME_FLAG")); assertTrue(attr.hasFlag("SOME_FLAG")); } @Test public void testCompareTo() { - assertTrue( - RuleDocumentationAttribute.create(TestRule.class, "a", "", 0, NO_FLAGS) - .compareTo( - RuleDocumentationAttribute.create(TestRule.class, "b", "", 0, NO_FLAGS)) - == -1); + assertEquals( + -1, + RuleDocumentationAttribute.create(TestRule.class, "a", "", 0, "", NO_FLAGS).compareTo( + RuleDocumentationAttribute.create(TestRule.class, "b", "", 0, "", NO_FLAGS))); } @Test public void testCompareToWithPriorityAttributeName() { - assertTrue( - RuleDocumentationAttribute.create(TestRule.class, "a", "", 0, NO_FLAGS) - .compareTo( - RuleDocumentationAttribute.create(TestRule.class, "name", "", 0, NO_FLAGS)) - == 1); + assertEquals( + 1, + RuleDocumentationAttribute.create(TestRule.class, "a", "", 0, "", NO_FLAGS).compareTo( + RuleDocumentationAttribute.create(TestRule.class, "name", "", 0, "", NO_FLAGS))); } @Test public void testEquals() { assertEquals( - RuleDocumentationAttribute.create(TestRule.class, "a", "", 0, NO_FLAGS), - RuleDocumentationAttribute.create(IntermediateRule.class, "a", "", 0, NO_FLAGS)); + RuleDocumentationAttribute.create(TestRule.class, "a", "", 0, "", NO_FLAGS), + RuleDocumentationAttribute.create(IntermediateRule.class, "a", "", 0, "", NO_FLAGS)); } @Test public void testHashCode() { assertEquals( - RuleDocumentationAttribute.create(TestRule.class, "a", "", 0, NO_FLAGS) + RuleDocumentationAttribute.create(TestRule.class, "a", "", 0, "", NO_FLAGS) .hashCode(), - RuleDocumentationAttribute.create(IntermediateRule.class, "a", "", 0, NO_FLAGS) + RuleDocumentationAttribute.create(IntermediateRule.class, "a", "", 0, "", NO_FLAGS) .hashCode()); } @@ -111,7 +109,7 @@ public class RuleDocumentationAttributeTest { Attribute attribute = Attribute.attr("foo_version", Type.STRING) .value(defaultValue).build(); RuleDocumentationAttribute attributeDoc = RuleDocumentationAttribute.create( - TestRule.class, "testrule", "", 0, NO_FLAGS); + TestRule.class, "testrule", "", 0, "", NO_FLAGS); attributeDoc.setAttribute(attribute); String doc = attributeDoc.getSynopsis(); assertEquals("String; optional; default is \"" + defaultValue + "\"", doc); @@ -123,7 +121,7 @@ public class RuleDocumentationAttributeTest { Attribute attribute = Attribute.attr("bar_limit", Type.INTEGER) .value(defaultValue).build(); RuleDocumentationAttribute attributeDoc = RuleDocumentationAttribute.create( - TestRule.class, "testrule", "", 0, NO_FLAGS); + TestRule.class, "testrule", "", 0, "", NO_FLAGS); attributeDoc.setAttribute(attribute); String doc = attributeDoc.getSynopsis(); assertEquals("Integer; optional; default is " + defaultValue, doc); @@ -136,7 +134,7 @@ public class RuleDocumentationAttributeTest { .allowedFileTypes() .build(); RuleDocumentationAttribute attributeDoc = RuleDocumentationAttribute.create( - TestRule.class, "testrule", "", 0, NO_FLAGS); + TestRule.class, "testrule", "", 0, "", NO_FLAGS); attributeDoc.setAttribute(attribute); String doc = attributeDoc.getSynopsis(); assertEquals("List of <a href=\"../build-ref.html#labels\">labels</a>; optional", doc); @@ -149,7 +147,7 @@ public class RuleDocumentationAttributeTest { .allowedFileTypes(CppFileTypes.CPP_HEADER) .build(); RuleDocumentationAttribute attributeDoc = RuleDocumentationAttribute.create( - TestRule.class, "testrule", "", 0, NO_FLAGS); + TestRule.class, "testrule", "", 0, "", NO_FLAGS); attributeDoc.setAttribute(attribute); String doc = attributeDoc.getSynopsis(); assertEquals("<a href=\"../build-ref.html#labels\">Label</a>; required", doc); diff --git a/src/test/java/com/google/devtools/build/docgen/RuleDocumentationTest.java b/src/test/java/com/google/devtools/build/docgen/RuleDocumentationTest.java index d77c9eaabc..d7c6f6c4bc 100644 --- a/src/test/java/com/google/devtools/build/docgen/RuleDocumentationTest.java +++ b/src/test/java/com/google/devtools/build/docgen/RuleDocumentationTest.java @@ -81,7 +81,7 @@ public class RuleDocumentationTest { @Test public void testInheritedAttributeGeneratesSignature() throws Exception { RuleDocumentationAttribute runtimeDepsAttr = RuleDocumentationAttribute.create(TestRule.class, - "runtime_deps", "attribute doc", 0, NO_FLAGS); + "runtime_deps", "attribute doc", 0, "", NO_FLAGS); checkAttributeForRule( new RuleDocumentation( "java_binary", "BINARY", "JAVA", "", 0, "", ImmutableSet.<String>of(), provider), @@ -111,7 +111,7 @@ public class RuleDocumentationTest { 0, "", ImmutableSet.<String>of(), provider); ruleDoc.addDocVariable("VAR", "w"); RuleDocumentationAttribute attributeDoc = RuleDocumentationAttribute.create(TestRule.class, - "srcs", "attribute doc", 0, NO_FLAGS); + "srcs", "attribute doc", 0, "", NO_FLAGS); ruleDoc.addAttribute(attributeDoc); assertEquals("\nx\ny\nz\n\n", ruleDoc.getCommandLineDocumentation()); } diff --git a/src/test/java/com/google/devtools/build/docgen/RuleLinkExpanderTest.java b/src/test/java/com/google/devtools/build/docgen/RuleLinkExpanderTest.java new file mode 100644 index 0000000000..2694b0e464 --- /dev/null +++ b/src/test/java/com/google/devtools/build/docgen/RuleLinkExpanderTest.java @@ -0,0 +1,80 @@ +// Copyright 2015 The Bazel Authors. 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.devtools.build.docgen; + +import static org.junit.Assert.assertEquals; + +import com.google.common.collect.ImmutableMap; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +/** Unit tests for {@link RuleLinkExpander}. */ +@RunWith(JUnit4.class) +public class RuleLinkExpanderTest { + private RuleLinkExpander expander; + + @Before public void setUp() { + expander = new RuleLinkExpander(ImmutableMap.<String, String>builder() + .put("cc_library", "c-cpp") + .put("cc_binary", "c-cpp") + .put("java_binary", "java") + .put("proto_library", "protocol-buffer") + .build()); + } + + @Test public void testRule() { + String docs = "<a href=\"${link java_binary}\">java_binary rule</a>"; + String expected = "<a href=\"java.html#java_binary\">java_binary rule</a>"; + assertEquals(expected, expander.expand(docs)); + } + + @Test public void testRuleAndAttribute() { + String docs = "<a href=\"${link java_binary.runtime_deps}\">runtime_deps attribute</a>"; + String expected = "<a href=\"java.html#java_binary.runtime_deps\">runtime_deps attribute</a>"; + assertEquals(expected, expander.expand(docs)); + } + + @Test public void testRuleExamples() { + String docs = "<a href=\"${link cc_binary_examples}\">examples</a>"; + String expected = "<a href=\"c-cpp.html#cc_binary_examples\">examples</a>"; + assertEquals(expected, expander.expand(docs)); + } + + @Test public void testRuleArgs() { + String docs = "<a href=\"${link cc_binary_args}\">args</a>"; + String expected = "<a href=\"c-cpp.html#cc_binary_args\">args</a>"; + assertEquals(expected, expander.expand(docs)); + } + + @Test public void testStaticPageRef() { + String docs = "<a href=\"${link common-definitions}\">Common Definitions</a>"; + String expected = "<a href=\"common-definitions.html\">Common Definitions</a>"; + assertEquals(expected, expander.expand(docs)); + } + + @Test public void testStaticPageWithHeadingRef() { + String docs = "<a href=\"${link common-definitions.label-expansion}\">Label Expansion</a>"; + String expected = "<a href=\"common-definitions.html#label-expansion\">Label Expansion</a>"; + assertEquals(expected, expander.expand(docs)); + } + + @Test(expected = IllegalArgumentException.class) + public void testRefNotFound() { + String docs = "<a href=\"${link foo.bar}\">bar</a>"; + expander.expand(docs); + } +} |