RE: How to check markup attributes?
The IMarkupFilter approach only detects attributes coded into the HTML. Is there any way to get it to work for attributes created using the SimpleAttributeModifier or AttributeAppender? See code. FWIW I also tried the onComponentTag approach documented on the wiki https://cwiki.apache.org/WICKET/how-to-modify-an-attribute-on-a-html-tag.html Craig public class MyTextFieldT extends TextFieldT { public MyTextFieldT setAttribute(String name, String value){ this.add(new SimpleAttributeModifier(name, value)); return this; } } public class MarkupRuleFilter extends AbstractMarkupFilter { @Override public MarkupElement nextTag() throws ParseException { ComponentTag tag = nextComponentTag(); String attrVal = tag.getAttribute(maxlength); if( StringUtils.isBlank(attrVal)){ throw new IllegalStateException(No maxlength defined for + tag.getId()); } return tag; } } Craig -Original Message- From: Igor Vaynberg [mailto:igor.vaynb...@gmail.com] Sent: May-13-11 5:02 PM To: users@wicket.apache.org Subject: Re: How to check markup attributes? if you are doing validation you can use imarkupfilter to check the attrs. -igor On Fri, May 13, 2011 at 1:57 PM, Craig Pardey craig.par...@intelliware.ca wrote: I'd like to check that particular markup attributes have been set on a component. My first instinct was to use component.getMarkupAttributes(), but the JavaDoc quite clearly suggests that it shouldn't be used. For example, all TextFields should have a 'maxlength' defined: public class MyTextFieldT extends TextFieldT { @Override public void onAfterRender(){ super.onAfterRender(); ValueMap attrs = getMarkupAttributes(); if( !attrs.containsKey(maxlength)){ throw new IllegalStateException(No maxlength defined for + getId()); } } } Is there a better way to achieve this? Ideally I'd like to do it in a unit test rather than at runtime. Craig - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: How to check markup attributes?
you can use IResourceFilter to access the generated markup -igor On Tue, May 24, 2011 at 1:12 PM, Craig Pardey craig.par...@intelliware.ca wrote: The IMarkupFilter approach only detects attributes coded into the HTML. Is there any way to get it to work for attributes created using the SimpleAttributeModifier or AttributeAppender? See code. FWIW I also tried the onComponentTag approach documented on the wiki https://cwiki.apache.org/WICKET/how-to-modify-an-attribute-on-a-html-tag.html Craig public class MyTextFieldT extends TextFieldT { public MyTextFieldT setAttribute(String name, String value){ this.add(new SimpleAttributeModifier(name, value)); return this; } } public class MarkupRuleFilter extends AbstractMarkupFilter { @Override public MarkupElement nextTag() throws ParseException { ComponentTag tag = nextComponentTag(); String attrVal = tag.getAttribute(maxlength); if( StringUtils.isBlank(attrVal)){ throw new IllegalStateException(No maxlength defined for + tag.getId()); } return tag; } } Craig -Original Message- From: Igor Vaynberg [mailto:igor.vaynb...@gmail.com] Sent: May-13-11 5:02 PM To: users@wicket.apache.org Subject: Re: How to check markup attributes? if you are doing validation you can use imarkupfilter to check the attrs. -igor On Fri, May 13, 2011 at 1:57 PM, Craig Pardey craig.par...@intelliware.ca wrote: I'd like to check that particular markup attributes have been set on a component. My first instinct was to use component.getMarkupAttributes(), but the JavaDoc quite clearly suggests that it shouldn't be used. For example, all TextFields should have a 'maxlength' defined: public class MyTextFieldT extends TextFieldT { @Override public void onAfterRender(){ super.onAfterRender(); ValueMap attrs = getMarkupAttributes(); if( !attrs.containsKey(maxlength)){ throw new IllegalStateException(No maxlength defined for + getId()); } } } Is there a better way to achieve this? Ideally I'd like to do it in a unit test rather than at runtime. Craig - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: How to check markup attributes?
See IResponseFilter. This gives you the final output. On Tue, May 24, 2011 at 11:12 PM, Craig Pardey craig.par...@intelliware.cawrote: The IMarkupFilter approach only detects attributes coded into the HTML. Is there any way to get it to work for attributes created using the SimpleAttributeModifier or AttributeAppender? See code. FWIW I also tried the onComponentTag approach documented on the wiki https://cwiki.apache.org/WICKET/how-to-modify-an-attribute-on-a-html-tag.html Craig public class MyTextFieldT extends TextFieldT { public MyTextFieldT setAttribute(String name, String value){ this.add(new SimpleAttributeModifier(name, value)); return this; } } public class MarkupRuleFilter extends AbstractMarkupFilter { @Override public MarkupElement nextTag() throws ParseException { ComponentTag tag = nextComponentTag(); String attrVal = tag.getAttribute(maxlength); if( StringUtils.isBlank(attrVal)){ throw new IllegalStateException(No maxlength defined for + tag.getId()); } return tag; } } Craig -Original Message- From: Igor Vaynberg [mailto:igor.vaynb...@gmail.com] Sent: May-13-11 5:02 PM To: users@wicket.apache.org Subject: Re: How to check markup attributes? if you are doing validation you can use imarkupfilter to check the attrs. -igor On Fri, May 13, 2011 at 1:57 PM, Craig Pardey craig.par...@intelliware.ca wrote: I'd like to check that particular markup attributes have been set on a component. My first instinct was to use component.getMarkupAttributes(), but the JavaDoc quite clearly suggests that it shouldn't be used. For example, all TextFields should have a 'maxlength' defined: public class MyTextFieldT extends TextFieldT { @Override public void onAfterRender(){ super.onAfterRender(); ValueMap attrs = getMarkupAttributes(); if( !attrs.containsKey(maxlength)){ throw new IllegalStateException(No maxlength defined for + getId()); } } } Is there a better way to achieve this? Ideally I'd like to do it in a unit test rather than at runtime. Craig - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org -- Martin Grigorov jWeekend Training, Consulting, Development http://jWeekend.com http://jweekend.com/
Re: How to check markup attributes?
You can create an behavior doing the check in the Behavior#onComponentTag. At this point you will have access to the final ComponentTag object. The test case would look like: testSomePageOrComponet(){ CollectMissingAttributes theBehaviorITalkedAbout = new (...); MyPageOrComponentType pageOrComponentUnderTest = (...); pageOrComponentUnderTest.visit( new visitor(component){ component.add(theBehaviorITalkedAbout); } ); assertEmpty(theBehaviorITalkedAbout.getComponentsMissingSomeAttribute()); } On Tue, May 24, 2011 at 5:12 PM, Craig Pardey craig.par...@intelliware.ca wrote: The IMarkupFilter approach only detects attributes coded into the HTML. Is there any way to get it to work for attributes created using the SimpleAttributeModifier or AttributeAppender? See code. FWIW I also tried the onComponentTag approach documented on the wiki https://cwiki.apache.org/WICKET/how-to-modify-an-attribute-on-a-html-tag.html Craig public class MyTextFieldT extends TextF;ieldT { public MyTextFieldT setAttribute(String name, String value){ this.add(new SimpleAttributeModifier(name, value)); return this; } } public class MarkupRuleFilter extends AbstractMarkupFilter { @Override public MarkupElement nextTag() throws ParseException { ComponentTag tag = nextComponentTag(); String attrVal = tag.getAttribute(maxlength); if( StringUtils.isBlank(attrVal)){ throw new IllegalStateException(No maxlength defined for + tag.getId()); } return tag; } } Craig -Original Message- From: Igor Vaynberg [mailto:igor.vaynb...@gmail.com] Sent: May-13-11 5:02 PM To: users@wicket.apache.org Subject: Re: How to check markup attributes? if you are doing validation you can use imarkupfilter to check the attrs. -igor On Fri, May 13, 2011 at 1:57 PM, Craig Pardey craig.par...@intelliware.ca wrote: I'd like to check that particular markup attributes have been set on a component. My first instinct was to use component.getMarkupAttributes(), but the JavaDoc quite clearly suggests that it shouldn't be used. For example, all TextFields should have a 'maxlength' defined: public class MyTextFieldT extends TextFieldT { @Override public void onAfterRender(){ super.onAfterRender(); ValueMap attrs = getMarkupAttributes(); if( !attrs.containsKey(maxlength)){ throw new IllegalStateException(No maxlength defined for + getId()); } } } Is there a better way to achieve this? Ideally I'd like to do it in a unit test rather than at runtime. Craig - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org -- Pedro Henrique Oliveira dos Santos - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: How to check markup attributes?
ops, invoke the tester.startPageOrComponent before the assert line. On Tue, May 24, 2011 at 5:25 PM, Pedro Santos pedros...@gmail.com wrote: You can create an behavior doing the check in the Behavior#onComponentTag. At this point you will have access to the final ComponentTag object. The test case would look like: testSomePageOrComponet(){ CollectMissingAttributes theBehaviorITalkedAbout = new (...); MyPageOrComponentType pageOrComponentUnderTest = (...); pageOrComponentUnderTest.visit( new visitor(component){ component.add(theBehaviorITalkedAbout); } ); assertEmpty(theBehaviorITalkedAbout.getComponentsMissingSomeAttribute()); } On Tue, May 24, 2011 at 5:12 PM, Craig Pardey craig.par...@intelliware.ca wrote: The IMarkupFilter approach only detects attributes coded into the HTML. Is there any way to get it to work for attributes created using the SimpleAttributeModifier or AttributeAppender? See code. FWIW I also tried the onComponentTag approach documented on the wiki https://cwiki.apache.org/WICKET/how-to-modify-an-attribute-on-a-html-tag.html Craig public class MyTextFieldT extends TextF;ieldT { public MyTextFieldT setAttribute(String name, String value){ this.add(new SimpleAttributeModifier(name, value)); return this; } } public class MarkupRuleFilter extends AbstractMarkupFilter { @Override public MarkupElement nextTag() throws ParseException { ComponentTag tag = nextComponentTag(); String attrVal = tag.getAttribute(maxlength); if( StringUtils.isBlank(attrVal)){ throw new IllegalStateException(No maxlength defined for + tag.getId()); } return tag; } } Craig -Original Message- From: Igor Vaynberg [mailto:igor.vaynb...@gmail.com] Sent: May-13-11 5:02 PM To: users@wicket.apache.org Subject: Re: How to check markup attributes? if you are doing validation you can use imarkupfilter to check the attrs. -igor On Fri, May 13, 2011 at 1:57 PM, Craig Pardey craig.par...@intelliware.ca wrote: I'd like to check that particular markup attributes have been set on a component. My first instinct was to use component.getMarkupAttributes(), but the JavaDoc quite clearly suggests that it shouldn't be used. For example, all TextFields should have a 'maxlength' defined: public class MyTextFieldT extends TextFieldT { @Override public void onAfterRender(){ super.onAfterRender(); ValueMap attrs = getMarkupAttributes(); if( !attrs.containsKey(maxlength)){ throw new IllegalStateException(No maxlength defined for + getId()); } } } Is there a better way to achieve this? Ideally I'd like to do it in a unit test rather than at runtime. Craig - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org -- Pedro Henrique Oliveira dos Santos -- Pedro Henrique Oliveira dos Santos - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
How to check markup attributes?
I'd like to check that particular markup attributes have been set on a component. My first instinct was to use component.getMarkupAttributes(), but the JavaDoc quite clearly suggests that it shouldn't be used. For example, all TextFields should have a 'maxlength' defined: public class MyTextFieldT extends TextFieldT { @Override public void onAfterRender(){ super.onAfterRender(); ValueMap attrs = getMarkupAttributes(); if( !attrs.containsKey(maxlength)){ throw new IllegalStateException(No maxlength defined for + getId()); } } } Is there a better way to achieve this? Ideally I'd like to do it in a unit test rather than at runtime. Craig
Re: How to check markup attributes?
if you are doing validation you can use imarkupfilter to check the attrs. -igor On Fri, May 13, 2011 at 1:57 PM, Craig Pardey craig.par...@intelliware.ca wrote: I'd like to check that particular markup attributes have been set on a component. My first instinct was to use component.getMarkupAttributes(), but the JavaDoc quite clearly suggests that it shouldn't be used. For example, all TextFields should have a 'maxlength' defined: public class MyTextFieldT extends TextFieldT { @Override public void onAfterRender(){ super.onAfterRender(); ValueMap attrs = getMarkupAttributes(); if( !attrs.containsKey(maxlength)){ throw new IllegalStateException(No maxlength defined for + getId()); } } } Is there a better way to achieve this? Ideally I'd like to do it in a unit test rather than at runtime. Craig - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org