| // Copyright 2009-2013 The Apache Software Foundation |
| // |
| // 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 org.apache.tapestry5.integration.app1; |
| |
| import org.apache.commons.io.IOUtils; |
| import org.testng.annotations.Test; |
| |
| import java.net.URL; |
| |
| public class GeneralComponentTests extends App1TestCase |
| { |
| @Test |
| public void unless_component() |
| { |
| openLinks("Unless Demo"); |
| |
| assertText("//p[@id='false']", "false is rendered"); |
| |
| assertText("//p[@id='true']", ""); |
| } |
| |
| /** |
| * TAPESTRY-2044 |
| */ |
| @Test |
| public void action_links_on_non_active_page() |
| { |
| openLinks("Action Links off of Active Page"); |
| |
| String contextSpan = "//span[@id='context']"; |
| |
| assertText(contextSpan, "0"); |
| |
| clickAndWait("link=3"); |
| |
| assertText(contextSpan, "3"); |
| |
| clickAndWait("link=refresh"); |
| |
| assertText(contextSpan, "3"); |
| |
| clickAndWait("link=1"); |
| |
| assertText(contextSpan, "1"); |
| |
| clickAndWait("link=refresh"); |
| |
| assertText(contextSpan, "1"); |
| } |
| |
| /** |
| * TAPESTRY-2333 |
| */ |
| @Test |
| public void action_links_on_custom_url() |
| { |
| open(getBaseURL() + "nested/actiondemo/"); |
| |
| clickAndWait("link=2"); |
| |
| assertTextPresent("Number: 2"); |
| } |
| |
| /** |
| * TAP5-1075 |
| */ |
| @Test |
| public void report_location_of_unavailable_component_in_error() |
| { |
| openLinks("Report Location of Unavailable Component"); |
| |
| assertText("//td[@class='t-location-content t-location-current']", "<t:unavailablecomponent/>"); |
| } |
| |
| /** TAP5-1378 */ |
| @Test public void using_delegate_for_inline_components() { |
| openLinks("Inline Delegate"); |
| |
| // no params |
| assertText("block1", "block 1"); |
| |
| // multiple renders w/ multiple parameters |
| assertText("xpath=(//p[@class='superhero'])[1]", "Steve Rogers"); |
| assertText("xpath=(//p[@class='superhero'])[2]", "Bruce Banner"); |
| } |
| |
| /** TAP5-742 */ |
| @Test public void component_tracing_comments() throws Exception { |
| String contents = IOUtils.toString(new URL(getBaseURL()).openStream()); |
| |
| // off by default |
| assertFalse(contents.contains("Index:loop")); |
| assertFalse(contents.contains("Index:pagelink")); |
| |
| // enable with a query parameter |
| contents = IOUtils.toString(new URL(getBaseURL() + "?t:component-trace=true").openStream()); |
| assertTrue(contents.contains("Index:loop")); |
| assertTrue(contents.contains("Index:pagelink")); |
| } |
| } |