It seems like Testify can't handle that I have my page in a subdirectory of pages!
If I have my class in com.acme.web.pages.games, then I get the exception below. If I put the class directly under pages (com.acme.web.pages), then it works. Anyone have an idea why this is the case? Well, it doesn't work yet, I need to further mock the behaviour of HttpServletRequest in contributeRequestHandler(). Mats > Hm... it seems to be related to the fact that I had forgotten > to have a contributeComponentClassResolver() in my PageTestModule > class. So now my copied MessagePage test works! Woohoo! > > But I still get this exception for my real page: > > Request was not handled: > 'GamesLauncher' may not be a valid page name. > > Need to read more on how contributeComponentClassResolver() works. > > Mats > >> Hi! >> >> Yes, this did indeed get me further down the road. Thanks a lot! >> Now, when I run, I get a RunTimeException: >> >> Request was not handled: >> 'MessagePage' may not be a valid page name. >> at org.apache.tapestry5.test.PageTester.renderPage(PageTester.java:177) >> >> I'm looking into this, but haven't found how to fix it yet. >> >> Mats >> >>> Hi Mats, >>> >>> Yes, this is a question that has come up before, Paul provided the >>> answer... you can do a google for the original post, but you will need to >>> create a module with a contribution that ensures there are replacement HTTP >>> request/response objects available for your tests, then use a mock to >>> replace the request and response in your actual test. >>> >>> This is the code Paul provided: >>> public static void >>> contributeRequestHandler(OrderedConfiguration<RequestFilter> config, final >>> RequestGlobals requestGlobals) { >>> RequestFilter filter = new RequestFilter() { >>> public boolean service(Request request, Response response, >>> RequestHandler handler) throws IOException { >>> requestGlobals.storeServletRequestResponse(mock >>> (HttpServletRequest.class), mock(HttpServletResponse.class)); >>> return handler.service(request, response); >>> } >>> }; >>> config.add("EnsureNonNullHttpRequestAndResponse", filter, >>> "before:*"); >>> } >>> >>> Kind regards, >>> Peter >>> >>> >>> ----- Original Message ----- >>> From: "Mats Henricson" <m...@henricson.se> >>> To: "Tapestry users" <users@tapestry.apache.org> >>> Sent: Thursday, 3 September, 2009 16:30:10 GMT +02:00 Athens, Beirut, >>> Bucharest, Istanbul >>> Subject: Re: Can't get Testify & JUnit 4 & Mockito working >>> >>>>> My current guess is that @ForComponents is pulling in and handling >>>>> binding from my real AppManager, even though it is in no way part >>>>> of the test. >>>> In that case try creating the TapestryTester with a nonsense app name: >>>> >>>> private static final TapestryTester SHARED_TESTER >>>> = new TapestryTester("nonsense", MyModule.class); >>>> >>>> That will make sure Tapestry/Testify are using only the modules you >>>> specify in the constructor. >>> This seems to do the trick, actually! Much much thanks! >>> >>> But now Acegi Security is kicking in, and I get: >>> >>> Can only process HttpServletRequest >>> >>> Has anyone managed to mock it out of the picture? >>> >>> >>> Mats --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org