RE: Where do I put code to be executed only once for entire testclass

Tejaswini Yardi <[email protected]>
Newsgroups gmane.comp.jakarta.cactus.user
Message-ID <[email protected]>
Yeah but then this would be specific to each testcase. Can I have a
authentication done only once for all the testcases (beginXXX methods for
different test cases) for a single component being tested?

I want to know if i can avoid writing/ checking authentication in each
beginXXX() method. Is there any function such that cactus executes it just
once and not when every testcase is encountered.

Regards,
Tejaswini


Feliks Shvartsburd wrote:
> 
> User authentication is maintained by the current http session, which is
> maintained by passing cookies back and forth between client and server.
> Cactus maintains this http session making sure that server doesn't ask
> you for authentication again.
> So, what you need to do is this:
> 
> In you client side code:
> 
> public void beginXXX(WebRequest wr){
> 
>     HttpSessionCookie sessionCookie = wr.getSessionCookie();
> 
>     //build your http request
>    wr.addParameter("userName","foo");
>    wr.addParameter("userPassword","password");
>   
>   //we don't need to create a new session for each request
>    wr.setAutomaticSession(false);
>    wr.addCookie(sessionCookie);
> 
> 
> }
> 
> 
> 
> In you server side code:
> 
> public void testXXX(){
> 
> 
>     HttpSession mySession = request.getOriginalRequest().getSession();
> 
>    //check if user already authenticated
>     if(mySession.getAttribute("authentication") != null) &&
>        mySession.getAttribute("authentication").equals("ok"){
> 
>          //run your test
>   } else {    
> 
>   	 String username = (String)request.getParameter("userName");
>   	 String password = (String)request.getParameter("userPassword");
> 
>   	 //call server side code that does user authentication
> 
>        
>     //in addition get http session and if authentication is OK indicate
> this       	//by inserting new value in session
>       mySession.setAttribute("authentication","ok");
>   
>     }    
> 
> }
> 
> 
> -----Original Message-----
> From: Shay Thompson [mailto:[email protected]] 
> Sent: Friday, February 09, 2007 11:07 AM
> To: Cactus Users List
> Subject: Re: Where do I put code to be executed only once for entire
> testclass
> 
> 
> For JUnit I do the following.. I think it would work with Cactus.. not 
> positive as I haven't tried it.  There's probably something similar if
> not.
> 
>     public static Test suite() {
> 
>         TestSuite suite = new TestSuite();
>         suite.addTestSuite(MyTestClass.class);
> 
>         TestSetup wrapper = new TestSetup(suite) {
> 
>             public void setUp() throws Exception {
>                 init();
>             }
> 
>             public void tearDown() throws Exception {
>                 cleanUp();
>             }
>         };
> 
>         return wrapper;
>     }
> 
> Then in your init() you do the authentication.
> 
> 
> Tejaswini Yardi wrote:
>> Hi
>>
>> I need to put a code to authenticate the user into the application
> which
>> loads user cache and should be executed only once for the entire
> testclass
>> instead of executing once for each testcase. Can anyone tell me where
> can i
>> put this code in my test class. 
>> Please let me know this as soon as possible.
>>   
> 
> -- 
> 
> If you apply Ohms Law, e=mc2, to the hypotenuse and add to that a
> catalyst consisting of a set of struts and a gigahertz, you will
> theoretically arrive at an answer yesterday...
> 
> Shay Thompson - Lead Computer Scientist
> Adobe Systems, Inc. - Titan Core QE 
> Voice: x34728 or 612.251.5415
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Where-do-I-put-code-to-be-executed-only-once-for-entire-testclass-tf3200579.html#a8898072
Sent from the Cactus - User mailing list archive at Nabble.com.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.