/*
* � Copyright IBM Corp. 2012, 2014
*
* 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.
*/
/*
* Author: Maire Kehoe (mkehoe@ie.ibm.com)
* Date: 9 Nov 2012
* ExtlibRenderDojoPropertyTest.java
*/
package xsp.extlib.test.render;
import com.ibm.xsp.test.framework.XspTestUtil;
import com.ibm.xsp.test.framework.render.BaseRenderDojoPropertyTest;
/**
*
* @author Maire Kehoe (mkehoe@ie.ibm.com)
*/
public class ExtlibRenderDojoPropertyTest extends BaseRenderDojoPropertyTest {
private Object[][] propertyGivesExceptionSkips = new Object[][]{
// xe:tooltip for="testString" gives exception:
//com.ibm.xsp.FacesExceptionEx: Unknown 'for' component testString
// at com.ibm.xsp.extlib.renderkit.html_extended.tooltip.TooltipRenderer.initDojoAttributes(TooltipRenderer.java:87)
// at com.ibm.xsp.extlib.renderkit.html_extended.tooltip.TooltipRenderer.encodeBegin(TooltipRenderer.java:71)
// at com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeBegin(ReadOnlyAdapterRenderer.java:146)
// at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:956)
// at com.ibm.xsp.extlib.component.dynamiccontent.UIDynamicControl.encodeBegin(UIDynamicControl.java:218)
// at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:842)
// at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
// at com.ibm.xsp.test.framework.render.ResponseBuffer.encode(ResponseBuffer.java:48)
// at com.ibm.xsp.test.framework.render.RenderDojoPropertyTest.testRenderDojoPropertyTest(RenderDojoPropertyTest.java:167)
{"xe:tooltip", /*for="testString"*/"for"},
// xe:djxDataGrid storeComponentId="testString" gives exception:
//com.ibm.xsp.FacesExceptionEx: Cannot find Rest Service component testString
// at com.ibm.xsp.extlib.component.rest.UIBaseRestService.findRestServiceStoreId(UIBaseRestService.java:180)
// at com.ibm.xsp.extlib.renderkit.dojo.grid.DojoGridRenderer.initDojoAttributes(DojoGridRenderer.java:77)
// at com.ibm.xsp.extlib.renderkit.dojo.DojoWidgetBaseRenderer.writeDojoAttributes(DojoWidgetBaseRenderer.java:143)
// at com.ibm.xsp.extlib.renderkit.dojo.DojoWidgetBaseRenderer.writeTag(DojoWidgetBaseRenderer.java:92)
// at com.ibm.xsp.extlib.renderkit.dojo.DojoWidgetBaseRenderer.encodeBegin(DojoWidgetBaseRenderer.java:56)
// at com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeBegin(ReadOnlyAdapterRenderer.java:146)
// at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:956)
// at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:842)
// at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
// at com.ibm.xsp.test.framework.render.ResponseBuffer.encode(ResponseBuffer.java:48)
// at com.ibm.xsp.test.framework.render.RenderDojoPropertyTest.testRenderDojoPropertyTest(RenderDojoPropertyTest.java:167)
{"xe:djxDataGrid", /*storeComponentId="testString"*/"storeComponentId"},
// xe:djRadioButton skipContainers="10" gives exception:
//java.lang.NullPointerException
// at com.ibm.xsp.util.FacesUtil.getNamingContainer(FacesUtil.java:497)
// at com.ibm.xsp.extlib.component.dojo.form.UIDojoRadioButton.getClientGroupName(UIDojoRadioButton.java:105)
// at com.ibm.xsp.extlib.renderkit.dojo.form.DojoRadioButtonRenderer.getNameAttribute(DojoRadioButtonRenderer.java:65)
// at com.ibm.xsp.extlib.renderkit.dojo.form.DojoFormWidgetRenderer.encodeBegin(DojoFormWidgetRenderer.java:172)
// at com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeBegin(ReadOnlyAdapterRenderer.java:146)
// at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:956)
// at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:842)
// at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
// at com.ibm.xsp.test.framework.render.ResponseBuffer.encode(ResponseBuffer.java:48)
// at com.ibm.xsp.test.framework.render.RenderDojoPropertyTest.testRenderDojoPropertyTest(RenderDojoPropertyTest.java:167)
{"xe:djRadioButton", /*skipContainers="10"*/"skipContainers"},
};
@Override
protected String nonRandom(String stringInHtmlPage) {
if( null != stringInHtmlPage && stringInHtmlPage.endsWith("!") && stringInHtmlPage.contains("$$viewid=!")){
// /pages/pregenerated/empty.xsp?$$ajaxid=view:_id1:_id101&$$ajaxinner=content&$$viewid=!dbetypkypz!
// to end with: $$viewid=!aaaaaaaaaa!
int startRandomIndex = stringInHtmlPage.indexOf("$$viewid=!") +"$$viewid=!".length();
String before = stringInHtmlPage.substring(0, startRandomIndex);
String nonRandom = "aaaaaaaaaa";
return before+nonRandom+"!";
}
return super.nonRandom(stringInHtmlPage);
}
@Override
protected Object[][] getPropertyTestGivesExceptionSkips() {
Object[][] existing = super.getPropertyTestGivesExceptionSkips();
Object[][] allSkips = XspTestUtil.concat(existing, propertyGivesExceptionSkips );
return allSkips;
}
}