m 'Ec@sdZddd!ZdkZdkZdklZlZlZlZdk l Z l Z l Z l Z dklZdklZd klZd klZd klZd e fd YZdZedjo#e ddZeiendS(sf Test suite for session id manager. $Id: testBrowserIdManager.py 66609 2006-04-06 19:11:54Z slinkp $ s$Revision: 1.13 $i iN(sBrowserIdManagersBrowserIdManagerErrsBrowserIdManagerTraversersisAWellFormedBrowserId(sTestCases TestSuitesTextTestRunners makeSuite(s HTTPRequest(s HTTPResponse(squeryBeforeTraverse(sstdin(s ApplicationtTestBrowserIdManagercBstZdZdZdZdZdZdZdZdZ d Z d Z d Z d Z d Z dZ dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZRS( NcCst|_d|i_td}|iid||ii|_t }h}d|d:scCs|iidS(Ni(R RR(R ((RR"<s(R t assertRaisestBrowserIdManagerErr(R ((RttestSetBadBrowserIdName8s   cCs#d}|it||ddS(NtgummytfroopycCs|ii|S(N(R RtsetBrowserIdNamespacestd(R R)((RR"As(R&R'(R)R R#R$(R R)((RttestSetBadNamespaces>s cCs6d}|ii||i|ii|jdS(Ntcookiesturltform(R+surlR-(R)R RR(RtgetBrowserIdNamespaces(R R)((RttestSetGoodNamespacesDscCs#d}|it||ddS(Ns/;cCs|ii|S(N(R Rt setCookiePathtpath(R R1((RR"Ls(R1R R#R$(R R1((RttestSetBadCookiePathIs cCs0|iid|i|iidjdS(Ns/foo(R RR0Rt getCookiePath(R ((RttestSetGoodCookiePathNscCs|it|ddS(NcCs|iidS(NR!(R RtsetCookieLifeDays(R ((RR"Ts(R R#R$(R ((RttestSetBadCookieLifeDaysRs cCs0|iid|i|iidjdS(Ni(R RR5RtgetCookieLifeDays(R ((RttestSetGoodCookieLifeDaysVscCs|it|ddS(NcCs|iidS(Ntgubble(R RtsetCookieDomain(R ((RR"\s(R R#R$(R ((RttestSetBadCookieDomainZs cCs0|iid|i|iidjdS(Ni(R RR5RR7(R ((RR8^scCs<d}|ii||ii}|i||jdS(NR!(tdomainR RR:tgetCookieDomaint setdomainR(R R<R>((RttestSetNoCookieDomainbscCs@x9dhddR(R R>((RttestSetGoodCookieDomainnscCs0|iid|i|iidjdS(Ni(R RtsetCookieSecureRtgetCookieSecure(R ((RttestSetCookieSecuresscCs|ii}||ii_d|ii_|ii}||iii |<|ii}|i ||jt ||i |ii dS(NR+(R Rt getBrowserIdttokenRt browser_id_tbrowser_id_ns_RttokenkeyR+taRtreprtisBrowserIdFromCookie(R RIRHRE((RttestGetBrowserIdCookiewscCs)|iid}|i|djdS(Ni(R RRDRIRR(R RI((RttestSetBrowserIdDontCreatescCsR|iid}|ii}|iiii|}|i ||djdS(Nitvalue( R RRDRIRRHRtRESPONSER+tbR(R RIRPRH((RttestSetBrowserIdCreatescCs@|i|ii |ii}|i|iidS(N(R RRt hasBrowserIdRDRI(R RI((RttestHasBrowserIdscCs)|ii}|i|iidS(N(R RRDRIRtisBrowserIdNew(R RI((RttestBrowserIdIsNewscCs|ii}||ii_d|ii_|ii}||iii |<|ii d|ii}|i |ii |i |ii dS(NR+(scookies(R RRDRERRFRGRRHR-R(RIRRKtisBrowserIdFromForm(R RIRHRE((RttestIsBrowserIdFromCookieOnlyscCs|ii}||ii_d|ii_|ii}||iii |<|ii d|ii}|i |ii |i |iidS(NR-(sform(R RRDRERRFRGRRHR-R(RIRRKRV(R RIRHRE((RttestIsBrowserIdFromFormOnlyscCs}|ii}||ii_d|ii_|iid|ii}|i |ii |i |ii dS(NR,(surl( R RRDRERRFRGR(RIRRKtisBrowserIdFromUrl(R RIRE((RttestIsBrowserIdFromUrlOnlyscCs|ii}||ii_d|ii_|ii}||iii |<|ii}|i ||jt ||i |ii |ii|iiii |}|i |ddjdS(NR+RNtdeleted(R RRDRERRFRGRRHR+RIRRJRKtflushBrowserIdCookieROtc(R RIR]RERH((RttestFlushBrowserIdCookies cCs|ii}||ii_d|ii_|ii}||iii |<|ii}|i ||j|i |ii d}|ii ||iiii |}|i |d|jdS(NR+t abcdefghijkRN(R RRDRERRFRGRRHR+RIRRKtsetBrowserIdCookieByForceROR](R RIR]RHRE((RttestSetBrowserIdCookieByForcescCs|ii}|ii}d}|ii|}|i |d|||fjd}|ii|}|i |d|||fj|ii|dd}|i |d||fjdS(Ns/home/chrism/foos%s?%s=%ss4http://www.zope.org/Members/mcdonc?foo=bar&spam=eggss %s&%s=%ststyletinlines:http://www.zope.org/%s/%s/Members/mcdonc?foo=bar&spam=eggs( R RRt keystringRDtkeytut encodeUrltrR(R RhRfReRd((Rt testEncodeUrls  cCsT|ii}|ii}|ii}d||f}|i ||jdS(Ns*( R RRRdRDRetgetHiddenFormFieldthtmltexpectedR(R RlRkReRd((RttestGetHiddenFormFields cCs|iid|iid|iit}||i|i|i t |ii |i |ii dj|i |iid|ii j|i |iiddjdS(NiR,iit_ZopeId(surl(R RtsetAutoUrlEncodingR(tupdateTraversalDatatBrowserIdManagerTraversert traverserR RRtisAWellFormedBrowserIdRFRGRt_script(R Rr((RttestAutoUrlEncodings  #cCsKd}d}t}h}d|d                       cCsttd}|S(Nttest(t makeSuiteRt testsuite(R((Rt test_suite st__main__t verbosityi (t__doc__t __version__tsystZODBt"Products.Sessions.BrowserIdManagerRR$RqRstunittesttTestCaset TestSuitetTextTestRunnerRtZPublisher.HTTPRequestRtZPublisher.HTTPResponseRtZPublisher.BeforeTraverseR{RtOFS.ApplicationR RRR}trunnertrun(RRqRRRRRsRR{RR RRRRRR$RR((Rt?s