use of org.apache.knox.gateway.filter.rewrite.api.UrlRewriteRulesDescriptor in project knox by apache.
the class XmlFilterReaderTest method testInvalidConfigShouldThrowException.
@Test
public void testInvalidConfigShouldThrowException() throws Exception {
String input = "<root url='http://mock-host:42/test-input-path-1'><url>http://mock-host:42/test-input-path-2</url></root>";
// System.out.println( "INPUT=" + input );
UrlRewriteRulesDescriptor rulesConfig = UrlRewriteRulesDescriptorFactory.create();
UrlRewriteFilterDescriptor filterConfig = rulesConfig.addFilter("filter-1");
UrlRewriteFilterContentDescriptor contentConfig = filterConfig.addContent("*/xml");
contentConfig.addApply("$.url", "test-rule");
try {
XmlFilterReader filter = new TestXmlFilterReader(new StringReader(input), contentConfig);
IOUtils.toString(filter);
fail("Should have thrown an IllegalArgumentException.");
} catch (IOException e) {
fail("Should have thrown an IllegalArgumentException.");
} catch (IllegalArgumentException e) {
if (System.getProperty("java.vendor").contains("IBM")) {
assertThat(e.getMessage(), containsString("Extra illegal tokens: 'url'"));
} else {
assertThat(e.getMessage(), containsString("$.url"));
}
}
}
use of org.apache.knox.gateway.filter.rewrite.api.UrlRewriteRulesDescriptor in project knox by apache.
the class XmlFilterReaderTest method testSimpleStreaming.
@Test
public void testSimpleStreaming() throws IOException, ParserConfigurationException, XMLStreamException {
UrlRewriteRulesDescriptor rulesConfig = UrlRewriteRulesDescriptorFactory.create();
UrlRewriteFilterDescriptor filterConfig = rulesConfig.addFilter("filter-1");
UrlRewriteFilterContentDescriptor contentConfig = filterConfig.addContent("text/xml");
String inputXml = "<root/>";
StringReader inputReader = new StringReader(inputXml);
XmlFilterReader filterReader = new NoopXmlFilterReader(inputReader, contentConfig);
String outputHtml = new String(IOUtils.toCharArray(filterReader));
assertThat(the(outputHtml), hasXPath("/root"));
}
use of org.apache.knox.gateway.filter.rewrite.api.UrlRewriteRulesDescriptor in project knox by apache.
the class XmlFilterReaderTest method testBufferedDetectApplyForAttributes.
@Test
public void testBufferedDetectApplyForAttributes() throws Exception {
InputStream stream = TestUtils.getResourceStream(this.getClass(), "properties-attributes.xml");
String input = IOUtils.toString(stream, Charset.forName("UTF-8"));
// System.out.println( "INPUT=" + input );
UrlRewriteRulesDescriptor rulesConfig = UrlRewriteRulesDescriptorFactory.create();
UrlRewriteFilterDescriptor filterConfig = rulesConfig.addFilter("filter-1");
UrlRewriteFilterContentDescriptor contentConfig = filterConfig.addContent("text/xml");
UrlRewriteFilterBufferDescriptor bufferConfig = contentConfig.addBuffer("/properties/property");
UrlRewriteFilterDetectDescriptor detectConfig = bufferConfig.addDetect("@name", "test-name-2");
UrlRewriteFilterApplyDescriptor applyConfig = detectConfig.addApply("@value", "test-rule-2");
// UrlRewriteRulesDescriptorFactory.store( rulesConfig, "xml", new PrintWriter( System.out ) );
XmlFilterReader filter = new TestXmlFilterReader(new StringReader(input), contentConfig);
String output = IOUtils.toString(filter);
// System.out.println( "OUTPUT=" + output );
assertThat(the(output), hasXPath("/properties/property[1]/@name", equalTo("test-name-1")));
assertThat(the(output), hasXPath("/properties/property[1]/@value", equalTo("test-value-1")));
assertThat(the(output), hasXPath("/properties/property[2]/@name", equalTo("test-name-2")));
assertThat(the(output), hasXPath("/properties/property[2]/@value", equalTo("attr:test-rule-2{test-value-2}")));
assertThat(the(output), hasXPath("/properties/property[3]/@name", equalTo("test-name-3")));
assertThat(the(output), hasXPath("/properties/property[3]/@value", equalTo("test-value-3")));
}
use of org.apache.knox.gateway.filter.rewrite.api.UrlRewriteRulesDescriptor in project knox by apache.
the class XmlFilterReaderTest method testStreamedApplyForAttributes.
@Test
public void testStreamedApplyForAttributes() throws Exception {
InputStream stream = TestUtils.getResourceStream(this.getClass(), "properties-attributes.xml");
String input = IOUtils.toString(stream, Charset.forName("UTF-8"));
// System.out.println( "INPUT=" + input );
UrlRewriteRulesDescriptor rulesConfig = UrlRewriteRulesDescriptorFactory.create();
UrlRewriteFilterDescriptor filterConfig = rulesConfig.addFilter("filter-1");
UrlRewriteFilterContentDescriptor contentConfig = filterConfig.addContent("text/xml");
UrlRewriteFilterApplyDescriptor applyConfig = contentConfig.addApply("/properties/property/@value", "test-rule-2");
// UrlRewriteRulesDescriptorFactory.store( rulesConfig, "xml", new PrintWriter( System.out ) );
XmlFilterReader filter = new TestXmlFilterReader(new StringReader(input), contentConfig);
String output = IOUtils.toString(filter);
// System.out.println( "OUTPUT=" + output );
assertThat(the(output), hasXPath("/properties/property[1]/@name", equalTo("test-name-1")));
assertThat(the(output), hasXPath("/properties/property[1]/@value", equalTo("attr:test-rule-2{test-value-1}")));
assertThat(the(output), hasXPath("/properties/property[2]/@name", equalTo("test-name-2")));
assertThat(the(output), hasXPath("/properties/property[2]/@value", equalTo("attr:test-rule-2{test-value-2}")));
assertThat(the(output), hasXPath("/properties/property[3]/@name", equalTo("test-name-3")));
assertThat(the(output), hasXPath("/properties/property[3]/@value", equalTo("attr:test-rule-2{test-value-3}")));
}
use of org.apache.knox.gateway.filter.rewrite.api.UrlRewriteRulesDescriptor in project knox by apache.
the class XmlUrlRewriteRulesExporterTest method testCheckStep.
@Test
public void testCheckStep() throws Exception {
UrlRewriteRulesDescriptor rules = UrlRewriteRulesDescriptorFactory.create();
UrlRewriteRuleDescriptor rule = rules.addRule("test-rule");
UrlRewriteCheckDescriptor step = rule.addStep("check");
step.operation("test-operation").input("test-input").value("test-value").flow("all");
StringWriter writer = new StringWriter();
UrlRewriteRulesDescriptorFactory.store(rules, "xml", writer);
String str = writer.toString();
// System.out.println( str );
Source xml = XmlConverters.the(str);
assertThat(xml, XmlMatchers.hasXPath("/rules"));
assertThat(xml, XmlMatchers.hasXPath("/rules/rule"));
assertThat(xml, XmlMatchers.hasXPath("count(/rules/rule)", is("1")));
assertThat(xml, XmlMatchers.hasXPath("/rules/rule/@name", is("test-rule")));
assertThat(xml, XmlMatchers.hasXPath("/rules/rule/check"));
assertThat(xml, XmlMatchers.hasXPath("/rules/rule/check/@oper", is("test-operation")));
assertThat(xml, XmlMatchers.hasXPath("/rules/rule/check/@input", is("test-input")));
assertThat(xml, XmlMatchers.hasXPath("/rules/rule/check/@value", is("test-value")));
assertThat(xml, XmlMatchers.hasXPath("/rules/rule/check/@flow", is("ALL")));
}
Aggregations