IRC Archive for channel #xwiki
Last modified by Vincent Massol on 2012/10/18 19:12
anamarias left at 00:00 (Quit: anamarias
anamarias joined #xwiki at 00:02
anamarias left at 00:02 (Client Quit
vmassol left at 00:05 (Quit: Leaving.
Denis left at 00:05 (Quit: Leaving.
mflorea left at 00:25 (Quit: Leaving.
abusenius left at 00:33 (Ping timeout: 240 seconds
lucaa left at 01:06 (Ping timeout: 264 seconds
sdumitriu left at 01:20 (Ping timeout: 276 seconds
anna joined #xwiki at 05:21
anna left at 06:24 (Quit: anna
anna_ joined #xwiki at 07:50
mflorea joined #xwiki at 07:53
anna_ left at 08:08 (Quit: anna_
vmassol joined #xwiki at 08:16
vmassol - (08:38): Hi CalebJamesDeLisl, are you fixing the ui-tests stuff we discussed the other day? I think you should commit that independently of anything else you're working on, so that it's a small and focused commit
vmassol - (08:38): (and good morning!)
anna_ joined #xwiki at 08:40
kibahop joined #xwiki at 08:54
sdumitriu joined #xwiki at 09:10
lucaa joined #xwiki at 09:12
lucaa1 joined #xwiki at 09:16
lucaa left at 09:16 (Ping timeout: 260 seconds
SvenDowideit joined #xwiki at 09:25
lucaa1 left at 09:26 (Quit: Leaving.
evalica joined #xwiki at 09:27
arkub joined #xwiki at 09:30
silviar joined #xwiki at 09:36
kibahop left #xwiki at 09:43
lucaa joined #xwiki at 09:53
vmassol - (09:54): maybe we should quickly fix the create new space from the dashboard issue for 2.4M1 and 2.3.1
vmassol - (09:54): anyone looking into it?
bblfish joined #xwiki at 09:59
SvenDowideit_ joined #xwiki at 10:02
vmassol - (10:04): sdumitriu: I think switchToEdit is wrong in ui-tests
vmassol - (10:05): EditWikiTest is an instance of a page so it should have anything to do with editing other pages
vmassol - (10:05): instead there should be an api in AbstractTest or TestUtil to create a new page
vmassol - (10:05): do you agree?
vmassol - (10:06): s/EditWikiTest/WikiEditPage/
vmassol - (10:07): and the editiInWikiMode action should be in viewPage IMO
sdumitriu - (10:08): To create a new page? What kind of page?
vmassol - (10:11): I'll work with Caleb on this since I think it's related to what he started
vmassol - (10:11): CalebJamesDeLisl: ping me when you're avail
abusenius joined #xwiki at 10:13
KermitTheFragger joined #xwiki at 10:20
mflorea left at 10:30 (Quit: Leaving.
vmassol - (10:34): bblfish: added your video to http://www.xwiki.org/xwiki/bin/view/Main/ExternalLinks
tmortagne joined #xwiki at 10:34
bblfish - (10:35): cool
bblfish - (10:35): did that help you understand what foaf+ssl is doing?
vmassol - (10:35): still watching
bblfish - (10:35): It's true it is easy to miss
bblfish - (10:35): :-)
bblfish left at 10:38 (Quit: Leaving.
fmancinelli joined #xwiki at 10:41
bblfish joined #xwiki at 10:55
bblfish - (10:55): alors?
vmassol - (10:56): bblfish: very nice video. Indeed it helped me
vmassol - (10:56): it explains the concepts very well
bblfish - (10:56): cool
vmassol - (10:56): the only thing missing IMO
bblfish - (10:56): it is often difficult to explain simple things
vmassol - (10:56): is showing more examples of useful web sites where a webid can be used....
vmassol - (10:56): but the problem is that there aren't any probably :)
bblfish - (10:56): yes, we have to build them :-)
bblfish - (10:57): so if one could login to xwiki, that would be a nice example
vmassol - (10:57): for xwiki.org for example indeed
bblfish - (10:57): we could also build examples where people could buy space on xwiki, and allow members of a foaf:group to access it
bblfish - (10:57): the group would be published in their control
bblfish - (10:58): we should have better open source social web software implementing this soon. Then we can have more slick videos
jvdrean joined #xwiki at 10:58
vmassol - (10:59): cool
bblfish - (11:00): thanks for retweeting :-)
vmassol - (11:00): np
vmassol - (11:00): I messed up my tweet
vmassol - (11:00): but it cannot be edited
vmassol - (11:00): wanted to say "WebId(FOAF+SSL) with XWiki…."
bblfish - (11:00): ah yes. np. I often just delete tweets
bblfish - (11:01): and rewrite them
vmassol - (11:01): ah yes will do that
anna_ left at 11:12 (Quit: anna_
mflorea joined #xwiki at 11:20
vmassol - (11:32): CalebJamesDeLisl: hi
CalebJamesDeLisl - (11:32): Good morning vmassol
vmassol - (11:32): I'd like to work on cleaning the test fwk in ui-tests
vmassol - (11:32): do you have something to commit before I redo what you may have done? :)
CalebJamesDeLisl - (11:33): I have some code but unfortunately I couldn't get getPage() to return an indeterminate type.
CalebJamesDeLisl - (11:33): Try as I might I can't convert java into groovy ;)
CalebJamesDeLisl - (11:34): So I guess we will have to stick with: ViewPage vp = new ViewPage(); openPage(vp); vp.doSomething();
CalebJamesDeLisl - (11:35): I changed BasePage to have a function: getURL which returns the url of the page so that openPage knows what to do.
CalebJamesDeLisl - (11:35): (I have defined a "page" as something accessible by a unique URL.)
CalebJamesDeLisl - (11:36): Also created BaseElement (a superclass of BasePage) for "page objects" which are not entire pages.
vmassol - (11:36): what does it contain?
vmassol - (11:36): a URL?
CalebJamesDeLisl - (11:37): BaseElement?
vmassol - (11:37): yes
vmassol - (11:37): how do you pass the URL to the page instance?
vmassol - (11:38): use case:
vmassol - (11:38): EditWikiTest
vmassol - (11:38): imagine the test needs to edit a page
CalebJamesDeLisl - (11:38): Edit page might be editing any given page?
vmassol - (11:39): (not one of the well known pages but a page that doesn't exost)
vmassol - (11:39): WikiEditPage somePage = new WikiEditPage(....)
vmassol - (11:40): how do we define the space, document for that page?
CalebJamesDeLisl - (11:40): It sounds more natural to say WikiEditPage somePage = new WikiEditPage(new BasePage("XWiki", WebHome));
CalebJamesDeLisl - (11:40): * "WebHome"
vmassol - (11:40): WikiEditPage extends BasePage
vmassol - (11:40): why would you want it to wrap another BasePage?
vmassol - (11:41): ok so new WikiEditPage("XWiki", "WebHomr")
CalebJamesDeLisl - (11:41): That would work.
vmassol - (11:41): so it means there are 2 constructors?
vmassol - (11:41): or no?
vmassol - (11:41): maybe no acutally
vmassol - (11:41): one might be enough
vmassol - (11:42): ok are you ready to commit something so that I can help/work on it too?
CalebJamesDeLisl - (11:42): new WikiEditPage() maybe ought to be private if there needs to be a url.
CalebJamesDeLisl - (11:43): I have to clean up the getPage() failure and debug a problem causing the wiki engine to start twice, then I will be ready.
vmassol - (11:43): ok
vmassol - (11:44): note: there's a new contributor arriving next week
vmassol - (11:44): he'll be working on automated testing
vmassol - (11:44): so it would be good that we have somerthing clean in ui-tests for him
jvdrean - (11:44): mflorea: what's the problem with renaming the 'title' field to 'page' ?
vmassol - (11:44): so that he can start with the latest best practices
mflorea - (11:47): jvdrean: in Panels.NewPage the entity to select is chosen from a select box. So the 'parameter name' (space or page) is dynamic. If you chose space from the select then the input value is the space name. If you chose page then the input value is the page name. So we can't name the input 'page' nor 'space'.
CalebJamesDeLisl - (11:47): I wish I knew how to get getPage() to work but I don't see any way for it to work without breaking type safety.
mflorea - (11:47): s/entity to select/entity to create
vmassol - (11:47): how would you use it already CalebJamesDeLisl?
vmassol - (11:48): (forgot what we said the other day)
CalebJamesDeLisl - (11:48): openPage(new ViewPage());
CalebJamesDeLisl - (11:48): getPage().doSomethingSpecificToViewPage();
vmassol - (11:49): or
vmassol - (11:49): s/or//
vmassol - (11:49): we could still have:
vmassol - (11:50): hmm indded
vmassol - (11:50): the best is:
mflorea - (11:50): jvdrean: we could set with JavaScript the field name to the value of the select box ('space' or 'page') but IMO you should be able to create a page with JavaScript disabled
vmassol - (11:50): ViewPage viewPage = new ViewPage()
vmassol - (11:50): openPage(viewPage)
vmassol - (11:50): it's not too bad
CalebJamesDeLisl - (11:50): Yes, but still the programmer must keep track of which page is currently open.
vmassol - (11:51): ViewPage viewPage = new ViewPage()
vmassol - (11:51): viewPage.open()
vmassol - (11:51): ?
anna_ joined #xwiki at 11:51
vmassol - (11:51): or navigate() instead of open()
CalebJamesDeLisl - (11:52): I guess there is no difference between viewPage.open() and openPage(viewPage) is there is no getPage method.
lucaa - (11:52): devs, I don't remember exactly, can you call a static function of a class from velocity?
vmassol - (11:52): lucaa: not that I know
lucaa - (11:52): that is, if you _don't_ have an instance of that object on the velocity context
CalebJamesDeLisl - (11:53): Nope. If you can that's bad.
jvdrean - (11:53): all: wdyt about removing space creation from Panels.NewPage ?
sdumitriu - (11:53): jv: +1
lucaa - (11:54): vmassol: CalebJamesDeLisl have you tried that recently, have precise information? I would make a test otherwise but I prefer to not make the test if possible
vmassol - (11:54): CalebJamesDeLisl: viewPage.open() could call viewPage.getURL() internally I guess
sdumitriu - (11:54): CalebJamesDeLisl: Why is it bad?
vmassol - (11:54): lucaa: it's a bad thing to do anyway IMO. Why would you want this?
vmassol - (11:54): sdumitriu: because statics are evil
CalebJamesDeLisl - (11:54): sdumitriu: Utils.getComponent() +100 statics are the devil.
lucaa - (11:55): vmassol: I don't, wanna do it, I just wanted to be sure of my affirmations
mflorea - (11:55): jvdrean: +1, do we know if Panels.NewPage is really used for creating a new space?
vmassol - (11:55): jvdrean: not sure
vmassol - (11:55): how would users create a new spaces then?
vmassol - (11:55): (users of non colbiri skin of course)
jvdrean - (11:56): they can from the wiki dashboard
vmassol - (11:56): yes but that defeats
vmassol - (11:56): the idea of the panel
vmassol - (11:56): so either you remove the panel altogether
vmassol - (11:56): or we keep it imo
vmassol - (11:56): and the dashboard is only present on 1 page
vmassol - (11:56): the goal of a pane is to be presnet everywhere
vmassol - (11:56): s/pane/panel/
CalebJamesDeLisl - (11:56): vmassol: Actually I like viewPage.open() because viewPage need not be URL accessable. Why did we decide it couldn't be dome int the constructor? I forgot.
CalebJamesDeLisl - (11:57): s/dome int/done in/
vmassol - (11:57): CalebJamesDeLisl: the navigation should be a user action
vmassol - (11:57): for ex: if you have a clickLink() in some page that goes to another page
vmassol - (11:57): you don't want to navigate again to that page
vmassol - (11:57): just return a ref to it
vmassol - (11:57): s/ref/handle/
CalebJamesDeLisl - (11:58): That's right.
vmassol - (11:58): jvdrean: so for me that panel is a replacement of the menu actions for skins not having creation menu items
vmassol - (11:58): (if you remove space creation you remove a useful feature)
jvdrean - (11:58): vmassol: 1) the panel is the only way to create pages, this is not true for spaces
jvdrean - (11:59): 2) creating spaces from any page is not really needed imho
vmassol - (11:59): I don't agree
vmassol - (11:59): I'd be ?1 right now to remove that feature
vmassol - (11:59): especially since it's something old
vmassol - (11:59): and not our future
jvdrean - (11:59): 3) power user willing to create new spaces from anywhere can do it by specifying a new space in the create page panel
vmassol - (12:00): I really don't understand
mflorea - (12:00): what about dropping the select box and using two input fields instead: (1) the space name, prefilled with the name of the current space, and (2) the pane name
vmassol - (12:00): why want to remove that feature now
jvdrean - (12:00): mflorea: yes that would work
mflorea - (12:00): evalica wdyt?
mflorea - (12:00): s/pane/page
vmassol - (12:01): IMO that panel should be an alternative way of creating new pages, including supporting the new template stuff
vmassol - (12:02): btw there could be a notion of template space in the future I guess ;)
vmassol - (12:02): we have a template page and template wiki already
CalebJamesDeLisl - (12:04): Hmm. public static ViewPage open(String space, String name)?
vmassol - (12:05): jvdrean: my feeling is that the create new page panel has a use case when people want to hide the menus for example in a custom skin but still want to leave the ability to create some page/space to the user. WDYT?
tmortagne left at 12:06 (Quit: Leaving.
jvdrean - (12:07): vmassol: I think the best is mflorea suggestion, ie. have a space/page fields
vmassol - (12:08): jvdrean: why don't we do this for the menu then?
vmassol - (12:08): I think it's cleaner not to show the page when you create a space
vmassol - (12:08): since it has no meaning
kibahop joined #xwiki at 12:09
kibahop left #xwiki at 12:09
vmassol - (12:09): it could be another panel though I guess
vmassol - (12:09): one for creating pages and one for creating spaces
jvdrean - (12:10): vmassol: the page field would be hidden with JS but sure it's not perfect
vmassol - (12:10): I kind of agree that a create new page panel should only be about creating pages
vmassol - (12:10): so I remove my ?1 :)
vmassol - (12:11): and we can have a create space panel one day if we need one
mflorea - (12:13): but using two panels looks like an overhead (a lot of space needed)
evalica - (12:14): so I think Marius ideas with two inputs is ok. This way I can decide if I want to create: 1) a new page in current space; 2) a new page is another space; 3) a page in a new space;
mflorea - (12:14): why not reuse the code from the create page in the panel, or the other way around
vmassol - (12:14): mflorea: it's the same as having 2 menu entries
vmassol - (12:14): creating a space is a different topic than creating a page
evalica - (12:14): and when I want to create a new space, the page input could auto fill with WebHome
vmassol - (12:15): evalica: two input is mandatory for creating a page
vmassol - (12:15): the discussion is about creating a space
evalica - (12:15): but if I create a new page into a space that doesn't exists .. is the same process - the page is created and the space is created too
vmassol - (12:15): no
vmassol - (12:15): that's bad
mflorea - (12:15): vmassol: yes, I agree, but creating a space means in fact creating a page, WebHome
vmassol - (12:15): that assumes that spaces are pages
vmassol - (12:15): which is true now
vmassol - (12:15): but not in the future
vmassol - (12:15): mflorea: nope
vmassol - (12:15): it just happens
vmassol - (12:15): that it's implemented like this now
vmassol - (12:15): (wrongly btw)
vmassol - (12:16): but we want to fix this
vmassol - (12:16): (in the new model)
vmassol - (12:16): so better show the concept of space separately from the concept of page IMO
vmassol - (12:16): advanced users will be able to use
mflorea - (12:16): I see
vmassol - (12:16): the create new page panel
vmassol - (12:16): to create a space for now
evalica - (12:16): vmassol: what is the rationale for a space without pages?
vmassol - (12:17): a space always has pages evalica
vmassol - (12:17): but a space isn't necessarily a page itself
mflorea - (12:17): create space would create an empty space in the new model
vmassol - (12:17): yes
lucaa - (12:17): re static methods in velo, it's possible but it needs to be put on the context as such:
lucaa - (12:17): http://velocity.apache.org/engine/devel/developer-guide.html#supportforstaticclasses
evalica - (12:18): so the users should make an additional step to create a page after? why not make it in one step
vmassol - (12:19): the user would go to the space home once the space is created
vmassol - (12:19): there he would be able to create pages for ex
vmassol - (12:19): he'll see a dashboard of the space
vmassol - (12:19): with actions for the space
vmassol - (12:19): including action to create pages
vmassol - (12:20): said diffrently there'll be a template to visualize a space
vmassol - (12:20): (which is different from the template to visualize a page)
evalica - (12:20): the nice thing about the 2 inputs was that you weren't forced to create a page just in the current space
vmassol - (12:20): evalica: why do you want not to have 2 inputs?
evalica - (12:21): I want to have 2 inputs instead of two specialized panels
vmassol - (12:21): this is different
vmassol - (12:21): we need 2 inputs for creating a page
vmassol - (12:21): smae as for the create page menu action
vmassol - (12:21): btw
vmassol - (12:21): it needs to be improved
vmassol - (12:21): (need your help on tis)
vmassol - (12:21): s/tis/this/
mflorea - (12:22): but what would happen in the new model if the space doesn't exit?
vmassol - (12:22): so that either we have auto suggestion for existing spaces
mflorea - (12:22): s/exit/exists
vmassol - (12:23): mflorea: we need to define that but the "normal" strategy would be that you couldn't create a page in a space that doesn't exist
mflorea - (12:23): ok
vmassol - (12:24): evalica: there are 3 concepts that are different: create page, create space, create wiki
vmassol - (12:25): evalica: again right now there no notion of space in xwiki but we want to fix this
vmassol - (12:25): s/there/there's/
vmassol - (12:25): (right now there's only a notion of namespace for a page but not of a space entity)
vmassol - (12:26): (said differently there's no table for spaces in the DB, spaces are not even a page right now)
vmassol - (12:32): notification: xwiki.org is going to be restarted in 5 mn
vmassol - (12:32): (for maintenance)
tmortagne joined #xwiki at 12:37
alex-xwiki joined #xwiki at 12:38
alex-xwiki left at 12:39 (Client Quit
vmassol - (12:40): tmortagne: what's the status re the 2.4M1 release?
alex1 joined #xwiki at 12:40
vmassol - (12:40): I saw some tests failing on 2.3 rbanch this morning and 1 on trunk
alex1 is now known as Guest55994 ([email protected]
vmassol - (12:40): oh it seems it's 45 failing again on trunk now
Guest55994 left at 12:40 (Client Quit
darkone joined #xwiki at 12:41
darkone left at 12:41 (Client Quit
salecss joined #xwiki at 12:41
vmassol - (12:42): who's working on fixing tests?
vmassol - (12:43): thoughts: we need to change the way we work since it seems to be a common pattern now that we spend 3-4 days fixing tests before a release.
vmassol - (12:44): CalebJamesDeLisl: ping me when you have committed something so that I can help you/continue the work of cleaning up ui-tests
CalebJamesDeLisl - (12:45): Ok.
vmassol - (12:48): news
vmassol - (12:48): !news
florinciu joined #xwiki at 13:09
anamarias joined #xwiki at 13:13
florinciu left at 13:49 (Quit: Leaving.
CalebJamesDeLisl - (13:57): vmassol: committed.
CalebJamesDeLisl - (13:59): Haven't changed any tests yet, just made the framework easier to use.
CalebJamesDeLisl - (13:59): No more passing around the WebDriver!
florinciu joined #xwiki at 14:08
vmassol - (14:13): checking
vmassol - (14:15): CalebJamesDeLisl: something I don't understand
vmassol - (14:15): for ex: public String getURL(String space, String page)
vmassol - (14:15): it's now in BasePage
vmassol - (14:15): I don't understand
vmassol - (14:15): BasePage is supposed to represent a given apge
vmassol - (14:15): page
vmassol - (14:15): but here you pass it space and page
vmassol - (14:15): it's not logical
CalebJamesDeLisl - (14:16): It is used in pages in the open method.
CalebJamesDeLisl - (14:17): void open() { getDriver().get(getURL("space", "page"))
vmassol - (14:17): I don't undestand
vmassol - (14:17): it looks wrong to me
CalebJamesDeLisl - (14:17): Maybe it should be protected but I'm not sure that there is no valid use case for something else to use it.
vmassol - (14:18): I still don't undersand
vmassol - (14:18): where is this open method?
vmassol - (14:18): (so that I can check it)
CalebJamesDeLisl - (14:18): None yet because I haven't changed any tests. (there is one in the invitation test which is not committed.)
CalebJamesDeLisl - (14:19): s/invitation test/invitation page/
vmassol - (14:19): you say the getURL is used in the open method
vmassol - (14:19): but now you say there's no open method
vmassol - (14:19): I'm lost
CalebJamesDeLisl - (14:20): viewPage.open() was how we decided the page should be opened.
CalebJamesDeLisl - (14:20): I havn't committed any code with open methods yet (it's only in the invitation test.)
vmassol - (14:20): ok I need to re-read the whole thing
vmassol - (14:20): because the changes don't make any sense to me
vmassol - (14:21): the context looks strange too
CalebJamesDeLisl - (14:21): My thinking is that TestUtils is wrong and everything should be moved somewhere else.
vmassol - (14:21): yes but what did is even more wrong IMO
vmassol - (14:21): but I need to read a bit more to be sure
CalebJamesDeLisl - (14:22): More wrong than all static? ouch.
vmassol - (14:22): yep
vmassol - (14:22): :)
vmassol - (14:22): and actuzlly you've introduced statics
CalebJamesDeLisl - (14:23): Well the context has to be referenced globally because junit doesn't allow us to store information between tests.
vmassol - (14:23): nope
vmassol - (14:23): it's done on *purpose*
vmassol - (14:23): by junit
CalebJamesDeLisl - (14:23): So there is no state?
vmassol - (14:23): it's not that it does'n't allow it
vmassol - (14:23): and junit has ways to share stuff too
vmassol - (14:24): I think what you want is a custom test suite
vmassol - (14:24): same as what I did in selenium-tests
vmassol - (14:24): (for the skin executor)
vmassol - (14:25): and I don't see any reason to share the executor
CalebJamesDeLisl - (14:26): Well it has to be available to be stopped.
vmassol - (14:26): errr?
florinciu left at 14:27 (Read error: Connection reset by peer
vmassol - (14:27): that's in SetUp only
vmassol - (14:27): Testsetup that is
CalebJamesDeLisl - (14:27): The XWikiExecutor should be left to keep running after the tests terminate?
vmassol - (14:27): or in th etest suite (in junit4)
vmassol - (14:27): it wasn't before
vmassol - (14:27): why would it now
anamarias left at 14:27 (Quit: anamarias
vmassol - (14:28): again the question re teh executor is why would a test want to know it
vmassol - (14:28): it's a private implementation detail
vmassol - (14:28): that only belongs to the suite
CalebJamesDeLisl - (14:28): So how do you run one test?
CalebJamesDeLisl - (14:29): -Dtest=InvitationTest
vmassol - (14:29): in the same manner
vmassol - (14:30): but again there's no reason to expose it
vmassol - (14:30): to stuff other than code used to start/stop the container
vmassol - (14:31): let me think a bit more
vmassol - (14:31): to see if there's a better pattern
vmassol - (14:31): re getURL I'm still at a loss to understand it
CalebJamesDeLisl - (14:32): I can't think of what object getURL belongs to more than the page object.
vmassol - (14:33): I'm talking abotu getURL with params of course
vmassol - (14:33): getURL without params make sense
CalebJamesDeLisl - (14:35): Still there is a use for getURL with params. To what object would that belong?
vmassol - (14:35): I cannot answer without knowing tyhe use case
vmassol - (14:35): probably AbstractTest
CalebJamesDeLisl - (14:36): well BasePage.getURL with no params might simply call getURL("space", "page");
CalebJamesDeLisl - (14:38): If it is determined that we _must_ have a util class, IMO it must be instantiated and made available the way the WebDriver is.
CalebJamesDeLisl - (14:41): What if instead of BasePage#getURL(String, String) we had BasePage#open(String, String)? That satisfies all use cases I can think of.
vmassol - (14:41): I don't see why it would call getURL(space, page)
vmassol - (14:41): I don't see a reason for that
vmassol - (14:41): a page knows where it is
vmassol - (14:42): you don't need to tell it again
vmassol - (14:42): open(string, string) is wrong too
vmassol - (14:42): for the same reason
vmassol - (14:42): still reading....
CalebJamesDeLisl - (14:44): if open(String, String) is unavailable then each page object will have to know it's exact URL.
CalebJamesDeLisl - (14:48): So are you for advancing from here or merging out the commit. If you're for polishing it up then I'll commit changes to some page objects.
vmassol - (14:52): one thing I'm sure of is that passing executor to BaseElement is not correct
vmassol - (14:54): you can go on CalebJamesDeLisl, I'll do some modifications after
CalebJamesDeLisl - (14:55): Cool. I agree there are some things to fix. not having to pass the driver around like the XWikiContext is big though.
vmassol - (14:55): I knew lots of good practices with junit3
vmassol - (14:55): unfortiuately I don't know junit4 well enough
CalebJamesDeLisl - (14:57): How'd you like that getUnstoppable()? Kind of principle of least authority type thing.
CalebJamesDeLisl - (14:57): I spent way too much time getting that working.
vmassol - (14:57): first you removed my comments :)
vmassol - (14:57): and you didn't add new comments
vmassol - (14:58): even though what you did is the same kind of hack
vmassol - (14:58): getUnstoppable is pretty un-undertandable initially without comments ;)
CalebJamesDeLisl - (14:58): Yes, I will put the comments back. hack? Why do you say that?
vmassol - (14:58): by hack I mean signalling to AbstractTest that it's inside an executing suite
vmassol - (14:59): btw it should know that by itself normally
vmassol - (14:59): (but don't know how to do that in jjunit4)
vmassol - (14:59): actually I remove that
vmassol - (15:00): it's a good thing that the test doesn't know it's parent
CalebJamesDeLisl - (15:00): I didn't think of it that way, I was thinking "how to hold the stopping function close so nothing else can call it"
CalebJamesDeLisl - (15:00): I think that pattern would be useful other places where you want to pass some authority but not all to another class.
lucaa left at 15:01 (Ping timeout: 272 seconds
vmassol - (15:01): the NullExecutor pattern is good to me
vmassol - (15:01): no problem with that
vmassol - (15:02): (I would have done it as the executor level)
CalebJamesDeLisl - (15:02): You're right the executor is only needed to stop so it should be null. hmm how to do that?
KermitTheFragger left at 15:02 (Quit: Leaving
CalebJamesDeLisl - (15:03): It would be cool if java allowed us to take away the stop method from the class and hold it separately. There are some good things about javascript.
vmassol - (15:04): in junit3 I would write a test suite that would call the constructor of the test class, passing it the info it needed
vmassol - (15:04): s/needed/needs/
CalebJamesDeLisl - (15:04): Reflection?
vmassol - (15:04): no need for reflection
vmassol - (15:04): to set the info
vmassol - (15:05): it probably works similarly in junit4 actually
CalebJamesDeLisl - (15:06): I'll try to figure out how to keep the executor null, hopefully I can do it entirely inside of getUnstoppable.
salecss left #xwiki at 15:40
anna_ left at 15:55 (Quit: anna_
florinciu joined #xwiki at 16:12
sdumitriu - (16:19):
sdumitriu - (16:21): q
evalica left at 16:24 (Read error: Connection reset by peer
jvdrean - (16:26): FYI I'm waiting for the space creation problem to be fixed before releasing 2.3.1, that brings us to monday (vmassol, npm, CalebJamesDeLisl)
vmassol - (16:26): jvdrean: who's working on fixing it? marius?
CalebJamesDeLisl - (16:27): re: the space creation panel?
Enygma` left at 16:27 (Ping timeout: 264 seconds
jvdrean - (16:28): panel + wiki dashboard, yes Marius is on it
anna joined #xwiki at 16:29
silviar left at 16:46 (Quit: Leaving.
fmancinelli - (17:10): Quick question: is there a way (a macro maybe?) to insert footnotes while writing a paragraph? Something equivalent to the LaTeX text\footnote{Footnote content here} ?
tmortagne - (17:16): i think there is a macro for that, checking
tmortagne - (17:16): fmancinelli: http://code.xwiki.org/xwiki/bin/view/Macros/Footnote20Macro ?
fmancinelli - (17:16): yep! Thanks
abusenius - (17:18): hello @all
abusenius - (17:18): is there a reason why html macro doesnt set the parend of the XDOM it parses?
abusenius - (17:18): s/parend/parent/
vmassol - (17:19): hmm I don't remember a "parent" feature, maybe thomas does
abusenius - (17:21): every block has a parent, and XDOM is a block too
tmortagne - (17:23): abusenius: i don't understand what you expect exactly
tmortagne - (17:23): which XDOM are you talking about ?
vmassol - (17:24): XDOM is top level so it doesn't have a parent
abusenius - (17:24): well, {{html wiki=true}} parses the content with xwiki parser, and it returns an XDOM
tmortagne - (17:25): no it return a list of block like any other macro
CalebJamesDeLisl - (17:25): s/XDOM/Block/ ??
abusenius - (17:25): no, HTMLMacro.renderWikiSyntax, line 232
abusenius - (17:25): XDOM xdom = parser.parse(new StringReader(content));
CalebJamesDeLisl - (17:26): If I remember right XDOM extends Block.
abusenius - (17:26): well, yes
abusenius - (17:26): the problem is, that this xdom becomes the root of all other blocks containing in the html macro
tmortagne - (17:26): abusenius: why do you want parent in this temporary XDOM ? for macro executed inside html macro ?
abusenius - (17:27): I want to exclude nested script macros
abusenius - (17:27): and a nice possibility imo is to look for MacroMarkerBlock in the parents
tmortagne - (17:27): ok
abusenius - (17:28): but with html I cant reach the toplevel parent any more
vmassol - (17:28): why not a transformation?
abusenius - (17:28): so volocity > html > groovy is not counted as nested
abusenius - (17:29): vmassol, wdym?
tmortagne - (17:29): vmassol: html macro always produce just a RawBlock from outside POV, you can't filter script macro inside it
vmassol - (17:29): HTML macro is a black box anyway right now
abusenius - (17:30): script macros too, until they are executed
tmortagne - (17:30): vmassol: yes that's why you can't use transformation
vmassol - (17:30): yes but I don't get this thing about parent
vmassol - (17:30): if we want to introduce a notion of filter
vmassol - (17:30): we need to modify te html macro
tmortagne - (17:30): abusenius: wants to try filtering at script macro level
tmortagne - (17:31): by looking if he is already inside another script macro
abusenius - (17:31): http://jira.xwiki.org/jira/browse/XWIKI-5223
vmassol - (17:31): ok I understand now
vmassol - (17:31): don't know if it's a good idea though
abusenius - (17:31): I added a parent to xdom parsed by html, seems to work locally
abusenius - (17:32): any other ideas how to do it?
tmortagne - (17:32): abusenius: that's not the nicest, if we want to provide this link, we should replace the XDOM by a MacroMarker("html")
tmortagne - (17:32): filtering or not filtering
abusenius - (17:33): ok, sounds reasonable
tmortagne - (17:33): that can be usefull to access the document content from submacros
tmortagne - (17:33): imagine a toc macro inside html macro
tmortagne - (17:34): currently i guess it does not work because toc macro can't access the whole document content
abusenius - (17:34): I'm just not sure if some other code relies on the fact that stuff inside html macros is independent from the document, or it's just a bug
tmortagne - (17:34): i will create an issue about this use case and fix that, filtering is another subject and i'm still not sure we should do that that way
tmortagne - (17:35): abusenius: i doubt that there is no reason for html macro content to be isolated
tmortagne - (17:35): that's a bug
abusenius - (17:35): good
abusenius - (17:35): tmortagne, why do you think filtering this way is not a good solution?
tmortagne - (17:36): i'm not sure systematic filtering itself is a good idea
abusenius - (17:36): what could we do instead then?
tmortagne - (17:37): no idea
tmortagne - (17:37): that's why i'm using things like "i'm not sure" ;)
abusenius - (17:37): IMO we should fix XWIKI-5223 anyway, if we find a better solution later - great
abusenius - (17:38): and filtering would fix scripting issue
florinciu left at 17:38 (Quit: Leaving.
abusenius - (17:38): although html will still be there
abusenius - (17:38): {{/html}}
tmortagne - (17:38): well it would fix security issue for usre but i could also break use cases
tmortagne - (17:38): s/i could/it could/
abusenius - (17:38): like what?
abusenius - (17:39): IMO nested scripts are just wrong
CalebJamesDeLisl - (17:39): Better filter {{include}} macros too ;)
abusenius - (17:39): yes, they are a problem too, but I havent looked how they work yet
tmortagne - (17:39): vmassol: hmm Transformation#transform takes a XDOM, even if there is no technical reason for that, we should change it i think
tmortagne - (17:40): (for Block)
vmassol - (17:41): yes we could
vmassol - (17:41): I agree Block is better from a design pov
abusenius - (17:41): btw, CalebJamesDeLisl , {{include}} takes an existing document, which is another problem than the scripts IMO
vmassol - (17:41): XDOM should be changed too in this case
vmassol - (17:42): to something that represents a set of blocks
CalebJamesDeLisl - (17:42): {{include}} is safe as it is (it delegates power) with the problem you're looking at, it can be used to delegate yourself power.
vmassol - (17:42): but that doesn't have to be terminal
vmassol - (17:42): right now it's meant to be terminal
mflorea left at 17:43 (Quit: Leaving.
vmassol - (17:44): CollectionBlock or something like that but maybe hard to change at this stage
CalebJamesDeLisl - (17:45): What ever happened to the plan for code macro only be able to be ended using a "password"?
tmortagne - (17:46): vmassol: yep we need a CollectionBlock, we talked about that some time ago but never implemented it
abusenius - (17:46): CalebJamesDeLisl, was there a discussion about it or something?
tmortagne - (17:47): CalebJamesDeLisl: code macro=script macro ? or are you really talking about code highlight macro ?
abusenius - (17:47): or is it unrelated to scripting issue?
tmortagne - (17:47): (in that case i don't understand)
CalebJamesDeLisl - (17:47): I seem to recall {{code}} (highlighting) there was talk of using a unique string to end it.
tmortagne - (17:49): CalebJamesDeLisl: ha you mean the discussion about putting a ending amcro syntax as content of a macro
tmortagne - (17:49): it was not just about code macro but about any macro
CalebJamesDeLisl - (17:49): Apply that to other macros: #set($key = $mathtool.random()) {{html endsWith="$key"}} $userInput {{$key}}
CalebJamesDeLisl - (17:49): Good luck breaking out of that.
CalebJamesDeLisl - (17:52): On another note: I'd like to gut most of the functionality in TestUtils which isn't being used yet. Any objections? vmassol?
abusenius - (17:52): this example is not very user friendly, but if this would happen automatically, this would be cool
CalebJamesDeLisl - (17:53): I figure it TestUtils will still be available in the revision history so functions can be ported to their proper place.
vmassol - (17:53): CalebJamesDeLisl: go ahead but we might need some of them in AbstractTest
vmassol - (17:54): you can remove and check what's neede dby the tests
CalebJamesDeLisl - (17:54): Maybe we will need a TestUtils but I say it must be an instance. re check: it builds now.
CalebJamesDeLisl - (18:01): Also I'm deprecating it...
vmassol - (18:02): why deprecate?
CalebJamesDeLisl - (18:04): Because I want to remove the remaining methods and if a util class is needed, make one which is instantiated.
CalebJamesDeLisl - (18:05): gotoPage should be a page object method, deletePage should be a function of the DeletePage page object.
CalebJamesDeLisl - (18:07): The only function which is arguably a "util" function is escapeURL and if that is needed and we don't want it in AbstractTest and it is needed in multiple places, then it should be a function of a util class which is instanciated.
CalebJamesDeLisl - (18:11): I'm trying to figure out how I should handle cases where you want to do something (like login) and then be redirected to another page (with xredirect).
CalebJamesDeLisl - (18:12): LoginPage.LoginAndOpen(BasePage page) ?
CalebJamesDeLisl - (18:12): I really want to avoid adding static methods.
vmassol - (18:13): you want loginAsAdmin() to return a page is that it?
CalebJamesDeLisl - (18:14): Yes. that would skip going to the main page every time you log in.
vmassol - (18:14): (loginAs())
vmassol - (18:14): we don't go to the main page do we?
vmassol - (18:14): we don't have to I mean
CalebJamesDeLisl - (18:14): You end up where ever clicking login sends you (main page by default)
vmassol - (18:15): sure and that's ok
vmassol - (18:15): it's just that now AbstractAdminAuthenticatedTest navigates to the home page to be sure
vmassol - (18:15): but it doesn't have to
CalebJamesDeLisl - (18:15): It means you have to login, load the main page, then go to the page you are testing.
vmassol - (18:15): why?
CalebJamesDeLisl - (18:16): Because the login action sends a redirect to the main page.
vmassol - (18:16): not really
vmassol - (18:16): it redirects to wheerver you were
vmassol - (18:16): not to the home page
CalebJamesDeLisl - (18:16): So either login and then go to the page to test, or go to the page to test then login.
CalebJamesDeLisl - (18:17): One page gets loaded unnecessarily.
vmassol - (18:17): btw re login
vmassol - (18:17): maybe we can bypass the page paradigm somehow
CalebJamesDeLisl - (18:18): You mean bypass the selemium2 page object paradigm?
vmassol - (18:18): ie do the same as what the login page does
vmassol - (18:18): ie send a http post
CalebJamesDeLisl - (18:19): I was going to do that.
CalebJamesDeLisl - (18:19): Actually you can login with a get. I have admin on localhost bookmarked.
vmassol - (18:19): ok
CalebJamesDeLisl - (18:19): Not good though.
CalebJamesDeLisl - (18:20): Anyway I'm sure we can post but we need to load another page, preferably the page we are testing.
CalebJamesDeLisl - (18:21): InvitationPage ip = new InvitationPage();
CalebJamesDeLisl - (18:21): new PostLogin(ip);
CalebJamesDeLisl - (18:21): s/PostLogin/PostLoginAsAdmin/
vmassol - (18:22): the new sounds overkill
vmassol - (18:22): IMO a method in AbstractTest would be enough
vmassol - (18:22): loginAs(…)
vmassol - (18:22): + loginAsAdmin()
CalebJamesDeLisl - (18:22): It's using a constructor because static is ugly.
vmassol - (18:23): constructor is not better
vmassol - (18:23): if you don't have a real useful object
CalebJamesDeLisl - (18:23): I know, constructors are just static anyway.
vmassol - (18:23): it's actually worse
vmassol - (18:23): since you'll get several new
vmassol - (18:23): instead of one
CalebJamesDeLisl - (18:23): I don't like putting everything in AbstractTest.
vmassol - (18:23): anyway I don't see why you'd need either a staitc or a new
vmassol - (18:23): it's not everything
vmassol - (18:24): it's eveyrthing required by tests and not related to a given page
vmassol - (18:24): s/given page/page/
CalebJamesDeLisl - (18:24): But login is related to a page.
CalebJamesDeLisl - (18:24): Also delete is the same.
vmassol - (18:24): no
vmassol - (18:24): login is not
vmassol - (18:24): it would be if you went through the LoginPage page
vmassol - (18:25): same for delete
CalebJamesDeLisl - (18:25): IMO all things login should be kept with LoginPage.
vmassol - (18:25): I don't agree
vmassol - (18:25): deifnitelt not
vmassol - (18:25): you're mixing
vmassol - (18:25): Page Obect which is a DSL for page navigation
vmassol - (18:25): with tests
vmassol - (18:26): unless you wish to have static methods in LoginPage but that's worse
vmassol - (18:26): actually
CalebJamesDeLisl - (18:26): Suppose we changed the password for Admin? How many places would have to be changed?
vmassol - (18:26): wait
vmassol - (18:26): we could do the same thing as junit does with Assert
vmassol - (18:26): ie have static imports
CalebJamesDeLisl - (18:27): static import LoginPage.LoginAsAdmin?
vmassol - (18:27): I still dont think it has anything to do with Login Page
vmassol - (18:27): so I'm still agasint that
vmassol - (18:27): Login Page is about the login page
vmassol - (18:27): doing a post has nothing to do with the login page
sdumitriu left at 18:28 (Ping timeout: 260 seconds
CalebJamesDeLisl - (18:28): It's nice to have "Admin", "admin" all in one place.
vmassol - (18:28): tha's compltely different
vmassol - (18:28): it's about login
vmassol - (18:28): not about the login page
sdumitriu joined #xwiki at 18:28
CalebJamesDeLisl - (18:29): The logic is more compelling for delete, when you delete-confirm something you get a delete page.
vmassol - (18:29): it's the same
vmassol - (18:29): you can delete without going through the page paradigm
vmassol - (18:29): that's why we use confirm=1
CalebJamesDeLisl - (18:29): But when you do you end up on a delete page.
CalebJamesDeLisl - (18:29): There you have the option to restore.
vmassol - (18:29): same for login
vmassol - (18:30): you end up on some page
vmassol - (18:30): but these do not interest us
vmassol - (18:30): when you use that utility api
vmassol - (18:30): since we don't care about pages
vmassol - (18:30): in those cases
vmassol - (18:30): we ignore them
CalebJamesDeLisl - (18:30): I thought you like the page object paradigm ;)
vmassol - (18:30): otherwise if we don't want to ignore them then we use the page paradigm
vmassol - (18:31): no no
vmassol - (18:31): you're mixing stuff :)
vmassol - (18:31): the page paradigm is to be used when you want to test it
vmassol - (18:31): we're not talking about testing it here
CalebJamesDeLisl - (18:31): Maybe login should be a function of BasePage because it can be used as an alturnative to open()
anna left at 18:31 (Quit: anna
vmassol - (18:31): login is a function of BasePAge !!
vmassol - (18:32): actually it's viewPage probably
vmassol - (18:32): since the login button doesn't exist in edit mode for ex
vmassol - (18:32): but again
vmassol - (18:32): you're mixing tests with test setup
vmassol - (18:32): let me try to reprhase it
vmassol - (18:32): we have one test class called LoginLogoutTest
vmassol - (18:33): the goal of that page is to test the login/logout using the Page Object strategy
vmassol - (18:33): since it's about doing as a user would do
vmassol - (18:33): but that's the only test that need to do this
CalebJamesDeLisl - (18:33): Currently that login function is used wherever we need admin.
vmassol - (18:33): all other tests which test other stuff don't need to retest this
CalebJamesDeLisl - (18:33): Agreed.
vmassol - (18:33): they just need to have the correct setup
vmassol - (18:33): before they start
CalebJamesDeLisl - (18:34): I like login as a function of BasePage because you might want to edit page X as admin.
vmassol - (18:34): it's wrong IMO
vmassol - (18:35): BasePAge must have apis
vmassol - (18:35): that are common to all pages
CalebJamesDeLisl - (18:35): Even if the button isn't there, as you said we are not testing buttons.
vmassol - (18:35): login is not common to all pages
vmassol - (18:35): so it shouldn't be there
vmassol - (18:35): all PAge Obecet
vmassol - (18:35): are representation of UIs
vmassol - (18:35): that's their point
vmassol - (18:35): s/Obecet/Object/
CalebJamesDeLisl - (18:36): So you would require tests to view a page in order to login then login in order to edit a page?
vmassol - (18:36): nope I said the opposite just above ;)
vmassol - (18:36): suggesting to bypass the page paradigm for logging (except for LoginLogoutTest obviously)
vmassol - (18:36): and you said you were about to do this
CalebJamesDeLisl - (18:36): When I say login I mean post credentials.
vmassol - (18:37): yes
CalebJamesDeLisl - (18:37): So if I want to run a test which requires me to edit a page, shouldn't I post credentials with xredirect to that page?
CalebJamesDeLisl - (18:38): (to edit action on that page.)
vmassol - (18:38): yes we could have an api for that
vmassol - (18:38): if we want to save a step
CalebJamesDeLisl - (18:38): That's why I wanted a login function in BasePage.
vmassol - (18:39): I don't see the relationship
vmassol - (18:39): AbstractTest.loginAs(username, password, boolean, PageReference)
vmassol - (18:39): pagereference could simply be 2 parameters in practice
vmassol - (18:39): space and page
CalebJamesDeLisl - (18:39): Why are you passing the page reference, call login on the page.
vmassol - (18:40): yes we could pass a PageObject
vmassol - (18:40): MyPage page = new MyPage()
CalebJamesDeLisl - (18:40): SomePage sp = new SomePage(); sp.loginAs(username, password, rememberMe);
vmassol - (18:40): loginAs("Admin", "admin", true, page)
vmassol - (18:41): btw this is wrong
CalebJamesDeLisl - (18:41): sp.loginAs is the same as sp.open() except it posts login credentials.
CalebJamesDeLisl - (18:41): wrong?
vmassol - (18:41): yes :)
vmassol - (18:41): they are similar
vmassol - (18:41): but it won't work
vmassol - (18:41): hmmm
vmassol - (18:41): maybe it will
vmassol - (18:42): yes it will
vmassol - (18:42): sorry was rthinking about something else
vmassol - (18:42): but that's ok actually
vmassol - (18:42): we agree except that I disagree to put a non UI action in BasePage
CalebJamesDeLisl - (18:42): Hey, I spent last night trying to break java's type safety. I don't know the maening of "won't work" ;)
vmassol - (18:42): for me all non UI should go in AbstractTest
vmassol - (18:43): and if we really find it too big then in static imports
CalebJamesDeLisl - (18:43): Well BasePage.open() is in basepage because you need a page to open.
vmassol - (18:43): well that's wrong to me
vmassol - (18:44): very wrong should I say :)
vmassol - (18:44): again it has nothing to do with Page Objects
CalebJamesDeLisl - (18:44): So you have util.open(BasePage) ?
vmassol - (18:45): yes without the util part
vmassol - (18:45): it can return an instance btw
CalebJamesDeLisl - (18:45): open returns what?
vmassol - (18:45): hmm that will be hard actually
vmassol - (18:45): it would work only for well known pages
vmassol - (18:45): ;)
vmassol - (18:46): so indeed:
vmassol - (18:46): MyPage page = new MyPage();
vmassol - (18:46): open(page)
vmassol - (18:46): I prefer
vmassol - (18:46): navigate
vmassol - (18:46): to open
CalebJamesDeLisl - (18:46): then how does "open" know where "page" is?
vmassol - (18:46): PageObject has a getPageReference method
vmassol - (18:47): (or getURL but mmaybe we need finer-grained than getURL))
CalebJamesDeLisl - (18:47): So every page knows it's url.
CalebJamesDeLisl - (18:47): A page which is not accessable via url cannot exist.
vmassol - (18:47): not sure about the url
vmassol - (18:47): but at least it knows it's location
vmassol - (18:48): s/it's/its/
CalebJamesDeLisl - (18:48): I was going to do this but I worried about pages which are only accessable via post.
vmassol - (18:49): that works too with location
vmassol - (18:49): by definition a page has a location and that's independent of how it's accessed
vmassol - (18:50): we could even reuse the Reference code
vmassol - (18:50): from xwiki-model
CalebJamesDeLisl - (18:50): So what happens if i have a page which is only accessable via post, and I call open(page)?
vmassol - (18:51): do you have an example?
vmassol - (18:51): what does the test want to do?
CalebJamesDeLisl - (18:51): Invitation preview page or sent page should only be available to post requests.
vmassol - (18:52): I doubt you'll want to access these directly
vmassol - (18:52): without going through the ui
CalebJamesDeLisl - (18:52): What happens if you do? Blows up?
vmassol - (18:52): why?
vmassol - (18:52): I don't understand
CalebJamesDeLisl - (18:52): Well you have provided an open function in AbstractTest, let's see what I can try to open.
vmassol - (18:52): I really don't understand what you are getting at
vmassol - (18:53): it's not open
vmassol - (18:53): it's navigate
vmassol - (18:53): this has nothing to do with navigatiobn
vmassol - (18:53): you just call something
CalebJamesDeLisl - (18:53): +4 keystrokes.
vmassol - (18:53): and?
CalebJamesDeLisl - (18:53): and not familiar to selenium1 test writers.
CalebJamesDeLisl - (18:53): Selenium2 uses get
vmassol - (18:54): gotoPage is fine too
vmassol - (18:54): open just doesn't mean enough
CalebJamesDeLisl - (18:54): +1 keystroke ;)
vmassol - (18:54): so?
vmassol - (18:54): what's the b with keystokes, I don't get it
vmassol - (18:54): you want to call it o()?
vmassol - (18:54): I'm ?1 to that
CalebJamesDeLisl - (18:55): Actually my main attraction to open is that it's familiar to selenium1
vmassol - (18:55): I don't think it's a valid criteria at all
CalebJamesDeLisl - (18:55): I'm not that concerned with the name though.
vmassol - (18:55): selenium2 is not sleeinum1
vmassol - (18:55): and the api is compleltely different
vmassol - (18:55): sele nium2 is webdriver
vmassol - (18:55): a 100% different api
vmassol - (18:55): so I don't get the point
vmassol - (18:55): :)
CalebJamesDeLisl - (18:56): IE is not Firefox but still their idea of javascript is annoying.
vmassol - (18:56): and even if it were similar
vmassol - (18:56): I will always agree to more clarity rather than less clarity :)
vmassol - (18:56): especially in tests and apis
CalebJamesDeLisl - (18:56): loadPageAndDisplayInBrowserWindow()
CalebJamesDeLisl - (18:56): Ok. this is turning into a bike shed.
vmassol - (18:56): yes
vmassol - (18:57): this is good
vmassol - (18:57): except it has unnecessary redundancies
vmassol - (18:57): windows is unnecessary
vmassol - (18:57): and browser too since it's only about browsers
CalebJamesDeLisl - (18:57): My main concern is where the open function will be.
vmassol - (18:58): I don't see any alternative
CalebJamesDeLisl - (18:58): If it's a function of the test then it must ask the page where it is.
CalebJamesDeLisl - (18:58): Pages which need to so something special to open will not be accessable.
CalebJamesDeLisl - (18:58): However the function will still be there so they will fail at runtime.
CalebJamesDeLisl - (19:00): If we are to take a page from javascript api then your idea would be the one used.
CalebJamesDeLisl - (19:00): like window.loaction=
vmassol - (19:01): thanks for the discussion. I have to go now. There's a dinner planned with all neighbours (it's a special neighbour day today) :)
CalebJamesDeLisl - (19:02): Thank you. Enjoy yourself.
fmancinelli left at 19:02 (Ping timeout: 265 seconds
arkub left at 19:07 (Quit: Leaving
florinciu joined #xwiki at 19:21
florinciu left at 19:31 (Quit: Leaving.
tmortagne left at 19:33 (Quit: Leaving.
jvdrean left at 19:42 (Quit: Leaving.
bblfish left at 19:46 (Quit: Leaving.
abusenius left at 19:49 (Ping timeout: 252 seconds
mflorea joined #xwiki at 21:05
abusenius joined #xwiki at 21:26
anamarias joined #xwiki at 21:26
anamarias left at 21:35 (Quit: anamarias
lucaa joined #xwiki at 21:35
florinciu joined #xwiki at 22:18
anamarias joined #xwiki at 22:18
anamarias left at 22:22 (Client Quit
fmancinelli joined #xwiki at 22:22
CalebJamesDeLisl - (22:57): I just realized open could return an undetermined type if it was: public T open(Class<T> clazz)
florinciu left at 23:08 (Quit: Leaving.
fmancinelli left at 23:11 (Ping timeout: 260 seconds
vmassol left at 23:21 (Quit: Leaving.
anna__ joined #xwiki at 23:51
mflorea left at 23:51 (Quit: Leaving.
arkub joined #xwiki at 23:56
{{/code}}
anamarias joined #xwiki at 00:02
anamarias left at 00:02 (Client Quit
vmassol left at 00:05 (Quit: Leaving.
Denis left at 00:05 (Quit: Leaving.
mflorea left at 00:25 (Quit: Leaving.
abusenius left at 00:33 (Ping timeout: 240 seconds
lucaa left at 01:06 (Ping timeout: 264 seconds
sdumitriu left at 01:20 (Ping timeout: 276 seconds
anna joined #xwiki at 05:21
anna left at 06:24 (Quit: anna
anna_ joined #xwiki at 07:50
mflorea joined #xwiki at 07:53
anna_ left at 08:08 (Quit: anna_
vmassol joined #xwiki at 08:16
vmassol - (08:38): Hi CalebJamesDeLisl, are you fixing the ui-tests stuff we discussed the other day? I think you should commit that independently of anything else you're working on, so that it's a small and focused commit
vmassol - (08:38): (and good morning!)
anna_ joined #xwiki at 08:40
kibahop joined #xwiki at 08:54
sdumitriu joined #xwiki at 09:10
lucaa joined #xwiki at 09:12
lucaa1 joined #xwiki at 09:16
lucaa left at 09:16 (Ping timeout: 260 seconds
SvenDowideit joined #xwiki at 09:25
lucaa1 left at 09:26 (Quit: Leaving.
evalica joined #xwiki at 09:27
arkub joined #xwiki at 09:30
silviar joined #xwiki at 09:36
kibahop left #xwiki at 09:43
lucaa joined #xwiki at 09:53
vmassol - (09:54): maybe we should quickly fix the create new space from the dashboard issue for 2.4M1 and 2.3.1
vmassol - (09:54): anyone looking into it?
bblfish joined #xwiki at 09:59
SvenDowideit_ joined #xwiki at 10:02
vmassol - (10:04): sdumitriu: I think switchToEdit is wrong in ui-tests
vmassol - (10:05): EditWikiTest is an instance of a page so it should have anything to do with editing other pages
vmassol - (10:05): instead there should be an api in AbstractTest or TestUtil to create a new page
vmassol - (10:05): do you agree?
vmassol - (10:06): s/EditWikiTest/WikiEditPage/
vmassol - (10:07): and the editiInWikiMode action should be in viewPage IMO
sdumitriu - (10:08): To create a new page? What kind of page?
vmassol - (10:11): I'll work with Caleb on this since I think it's related to what he started
vmassol - (10:11): CalebJamesDeLisl: ping me when you're avail
abusenius joined #xwiki at 10:13
KermitTheFragger joined #xwiki at 10:20
mflorea left at 10:30 (Quit: Leaving.
vmassol - (10:34): bblfish: added your video to http://www.xwiki.org/xwiki/bin/view/Main/ExternalLinks
tmortagne joined #xwiki at 10:34
bblfish - (10:35): cool
bblfish - (10:35): did that help you understand what foaf+ssl is doing?
vmassol - (10:35): still watching
bblfish - (10:35): It's true it is easy to miss
bblfish - (10:35): :-)
bblfish left at 10:38 (Quit: Leaving.
fmancinelli joined #xwiki at 10:41
bblfish joined #xwiki at 10:55
bblfish - (10:55): alors?
vmassol - (10:56): bblfish: very nice video. Indeed it helped me
vmassol - (10:56): it explains the concepts very well
bblfish - (10:56): cool
vmassol - (10:56): the only thing missing IMO
bblfish - (10:56): it is often difficult to explain simple things
vmassol - (10:56): is showing more examples of useful web sites where a webid can be used....
vmassol - (10:56): but the problem is that there aren't any probably :)
bblfish - (10:56): yes, we have to build them :-)
bblfish - (10:57): so if one could login to xwiki, that would be a nice example
vmassol - (10:57): for xwiki.org for example indeed
bblfish - (10:57): we could also build examples where people could buy space on xwiki, and allow members of a foaf:group to access it
bblfish - (10:57): the group would be published in their control
bblfish - (10:58): we should have better open source social web software implementing this soon. Then we can have more slick videos
jvdrean joined #xwiki at 10:58
vmassol - (10:59): cool
bblfish - (11:00): thanks for retweeting :-)
vmassol - (11:00): np
vmassol - (11:00): I messed up my tweet
vmassol - (11:00): but it cannot be edited
vmassol - (11:00): wanted to say "WebId(FOAF+SSL) with XWiki…."
bblfish - (11:00): ah yes. np. I often just delete tweets
bblfish - (11:01): and rewrite them
vmassol - (11:01): ah yes will do that
anna_ left at 11:12 (Quit: anna_
mflorea joined #xwiki at 11:20
vmassol - (11:32): CalebJamesDeLisl: hi
CalebJamesDeLisl - (11:32): Good morning vmassol
vmassol - (11:32): I'd like to work on cleaning the test fwk in ui-tests
vmassol - (11:32): do you have something to commit before I redo what you may have done? :)
CalebJamesDeLisl - (11:33): I have some code but unfortunately I couldn't get getPage() to return an indeterminate type.
CalebJamesDeLisl - (11:33): Try as I might I can't convert java into groovy ;)
CalebJamesDeLisl - (11:34): So I guess we will have to stick with: ViewPage vp = new ViewPage(); openPage(vp); vp.doSomething();
CalebJamesDeLisl - (11:35): I changed BasePage to have a function: getURL which returns the url of the page so that openPage knows what to do.
CalebJamesDeLisl - (11:35): (I have defined a "page" as something accessible by a unique URL.)
CalebJamesDeLisl - (11:36): Also created BaseElement (a superclass of BasePage) for "page objects" which are not entire pages.
vmassol - (11:36): what does it contain?
vmassol - (11:36): a URL?
CalebJamesDeLisl - (11:37): BaseElement?
vmassol - (11:37): yes
vmassol - (11:37): how do you pass the URL to the page instance?
vmassol - (11:38): use case:
vmassol - (11:38): EditWikiTest
vmassol - (11:38): imagine the test needs to edit a page
CalebJamesDeLisl - (11:38): Edit page might be editing any given page?
vmassol - (11:39): (not one of the well known pages but a page that doesn't exost)
vmassol - (11:39): WikiEditPage somePage = new WikiEditPage(....)
vmassol - (11:40): how do we define the space, document for that page?
CalebJamesDeLisl - (11:40): It sounds more natural to say WikiEditPage somePage = new WikiEditPage(new BasePage("XWiki", WebHome));
CalebJamesDeLisl - (11:40): * "WebHome"
vmassol - (11:40): WikiEditPage extends BasePage
vmassol - (11:40): why would you want it to wrap another BasePage?
vmassol - (11:41): ok so new WikiEditPage("XWiki", "WebHomr")
CalebJamesDeLisl - (11:41): That would work.
vmassol - (11:41): so it means there are 2 constructors?
vmassol - (11:41): or no?
vmassol - (11:41): maybe no acutally
vmassol - (11:41): one might be enough
vmassol - (11:42): ok are you ready to commit something so that I can help/work on it too?
CalebJamesDeLisl - (11:42): new WikiEditPage() maybe ought to be private if there needs to be a url.
CalebJamesDeLisl - (11:43): I have to clean up the getPage() failure and debug a problem causing the wiki engine to start twice, then I will be ready.
vmassol - (11:43): ok
vmassol - (11:44): note: there's a new contributor arriving next week
vmassol - (11:44): he'll be working on automated testing
vmassol - (11:44): so it would be good that we have somerthing clean in ui-tests for him
jvdrean - (11:44): mflorea: what's the problem with renaming the 'title' field to 'page' ?
vmassol - (11:44): so that he can start with the latest best practices
mflorea - (11:47): jvdrean: in Panels.NewPage the entity to select is chosen from a select box. So the 'parameter name' (space or page) is dynamic. If you chose space from the select then the input value is the space name. If you chose page then the input value is the page name. So we can't name the input 'page' nor 'space'.
CalebJamesDeLisl - (11:47): I wish I knew how to get getPage() to work but I don't see any way for it to work without breaking type safety.
mflorea - (11:47): s/entity to select/entity to create
vmassol - (11:47): how would you use it already CalebJamesDeLisl?
vmassol - (11:48): (forgot what we said the other day)
CalebJamesDeLisl - (11:48): openPage(new ViewPage());
CalebJamesDeLisl - (11:48): getPage().doSomethingSpecificToViewPage();
vmassol - (11:49): or
vmassol - (11:49): s/or//
vmassol - (11:49): we could still have:
vmassol - (11:50): hmm indded
vmassol - (11:50): the best is:
mflorea - (11:50): jvdrean: we could set with JavaScript the field name to the value of the select box ('space' or 'page') but IMO you should be able to create a page with JavaScript disabled
vmassol - (11:50): ViewPage viewPage = new ViewPage()
vmassol - (11:50): openPage(viewPage)
vmassol - (11:50): it's not too bad
CalebJamesDeLisl - (11:50): Yes, but still the programmer must keep track of which page is currently open.
vmassol - (11:51): ViewPage viewPage = new ViewPage()
vmassol - (11:51): viewPage.open()
vmassol - (11:51): ?
anna_ joined #xwiki at 11:51
vmassol - (11:51): or navigate() instead of open()
CalebJamesDeLisl - (11:52): I guess there is no difference between viewPage.open() and openPage(viewPage) is there is no getPage method.
lucaa - (11:52): devs, I don't remember exactly, can you call a static function of a class from velocity?
vmassol - (11:52): lucaa: not that I know
lucaa - (11:52): that is, if you _don't_ have an instance of that object on the velocity context
CalebJamesDeLisl - (11:53): Nope. If you can that's bad.
jvdrean - (11:53): all: wdyt about removing space creation from Panels.NewPage ?
sdumitriu - (11:53): jv: +1
lucaa - (11:54): vmassol: CalebJamesDeLisl have you tried that recently, have precise information? I would make a test otherwise but I prefer to not make the test if possible
vmassol - (11:54): CalebJamesDeLisl: viewPage.open() could call viewPage.getURL() internally I guess
sdumitriu - (11:54): CalebJamesDeLisl: Why is it bad?
vmassol - (11:54): lucaa: it's a bad thing to do anyway IMO. Why would you want this?
vmassol - (11:54): sdumitriu: because statics are evil
CalebJamesDeLisl - (11:54): sdumitriu: Utils.getComponent() +100 statics are the devil.
lucaa - (11:55): vmassol: I don't, wanna do it, I just wanted to be sure of my affirmations
mflorea - (11:55): jvdrean: +1, do we know if Panels.NewPage is really used for creating a new space?
vmassol - (11:55): jvdrean: not sure
vmassol - (11:55): how would users create a new spaces then?
vmassol - (11:55): (users of non colbiri skin of course)
jvdrean - (11:56): they can from the wiki dashboard
vmassol - (11:56): yes but that defeats
vmassol - (11:56): the idea of the panel
vmassol - (11:56): so either you remove the panel altogether
vmassol - (11:56): or we keep it imo
vmassol - (11:56): and the dashboard is only present on 1 page
vmassol - (11:56): the goal of a pane is to be presnet everywhere
vmassol - (11:56): s/pane/panel/
CalebJamesDeLisl - (11:56): vmassol: Actually I like viewPage.open() because viewPage need not be URL accessable. Why did we decide it couldn't be dome int the constructor? I forgot.
CalebJamesDeLisl - (11:57): s/dome int/done in/
vmassol - (11:57): CalebJamesDeLisl: the navigation should be a user action
vmassol - (11:57): for ex: if you have a clickLink() in some page that goes to another page
vmassol - (11:57): you don't want to navigate again to that page
vmassol - (11:57): just return a ref to it
vmassol - (11:57): s/ref/handle/
CalebJamesDeLisl - (11:58): That's right.
vmassol - (11:58): jvdrean: so for me that panel is a replacement of the menu actions for skins not having creation menu items
vmassol - (11:58): (if you remove space creation you remove a useful feature)
jvdrean - (11:58): vmassol: 1) the panel is the only way to create pages, this is not true for spaces
jvdrean - (11:59): 2) creating spaces from any page is not really needed imho
vmassol - (11:59): I don't agree
vmassol - (11:59): I'd be ?1 right now to remove that feature
vmassol - (11:59): especially since it's something old
vmassol - (11:59): and not our future
jvdrean - (11:59): 3) power user willing to create new spaces from anywhere can do it by specifying a new space in the create page panel
vmassol - (12:00): I really don't understand
mflorea - (12:00): what about dropping the select box and using two input fields instead: (1) the space name, prefilled with the name of the current space, and (2) the pane name
vmassol - (12:00): why want to remove that feature now
jvdrean - (12:00): mflorea: yes that would work
mflorea - (12:00): evalica wdyt?
mflorea - (12:00): s/pane/page
vmassol - (12:01): IMO that panel should be an alternative way of creating new pages, including supporting the new template stuff
vmassol - (12:02): btw there could be a notion of template space in the future I guess ;)
vmassol - (12:02): we have a template page and template wiki already
CalebJamesDeLisl - (12:04): Hmm. public static ViewPage open(String space, String name)?
vmassol - (12:05): jvdrean: my feeling is that the create new page panel has a use case when people want to hide the menus for example in a custom skin but still want to leave the ability to create some page/space to the user. WDYT?
tmortagne left at 12:06 (Quit: Leaving.
jvdrean - (12:07): vmassol: I think the best is mflorea suggestion, ie. have a space/page fields
vmassol - (12:08): jvdrean: why don't we do this for the menu then?
vmassol - (12:08): I think it's cleaner not to show the page when you create a space
vmassol - (12:08): since it has no meaning
kibahop joined #xwiki at 12:09
kibahop left #xwiki at 12:09
vmassol - (12:09): it could be another panel though I guess
vmassol - (12:09): one for creating pages and one for creating spaces
jvdrean - (12:10): vmassol: the page field would be hidden with JS but sure it's not perfect
vmassol - (12:10): I kind of agree that a create new page panel should only be about creating pages
vmassol - (12:10): so I remove my ?1 :)
vmassol - (12:11): and we can have a create space panel one day if we need one
mflorea - (12:13): but using two panels looks like an overhead (a lot of space needed)
evalica - (12:14): so I think Marius ideas with two inputs is ok. This way I can decide if I want to create: 1) a new page in current space; 2) a new page is another space; 3) a page in a new space;
mflorea - (12:14): why not reuse the code from the create page in the panel, or the other way around
vmassol - (12:14): mflorea: it's the same as having 2 menu entries
vmassol - (12:14): creating a space is a different topic than creating a page
evalica - (12:14): and when I want to create a new space, the page input could auto fill with WebHome
vmassol - (12:15): evalica: two input is mandatory for creating a page
vmassol - (12:15): the discussion is about creating a space
evalica - (12:15): but if I create a new page into a space that doesn't exists .. is the same process - the page is created and the space is created too
vmassol - (12:15): no
vmassol - (12:15): that's bad
mflorea - (12:15): vmassol: yes, I agree, but creating a space means in fact creating a page, WebHome
vmassol - (12:15): that assumes that spaces are pages
vmassol - (12:15): which is true now
vmassol - (12:15): but not in the future
vmassol - (12:15): mflorea: nope
vmassol - (12:15): it just happens
vmassol - (12:15): that it's implemented like this now
vmassol - (12:15): (wrongly btw)
vmassol - (12:16): but we want to fix this
vmassol - (12:16): (in the new model)
vmassol - (12:16): so better show the concept of space separately from the concept of page IMO
vmassol - (12:16): advanced users will be able to use
mflorea - (12:16): I see
vmassol - (12:16): the create new page panel
vmassol - (12:16): to create a space for now
evalica - (12:16): vmassol: what is the rationale for a space without pages?
vmassol - (12:17): a space always has pages evalica
vmassol - (12:17): but a space isn't necessarily a page itself
mflorea - (12:17): create space would create an empty space in the new model
vmassol - (12:17): yes
lucaa - (12:17): re static methods in velo, it's possible but it needs to be put on the context as such:
lucaa - (12:17): http://velocity.apache.org/engine/devel/developer-guide.html#supportforstaticclasses
evalica - (12:18): so the users should make an additional step to create a page after? why not make it in one step
vmassol - (12:19): the user would go to the space home once the space is created
vmassol - (12:19): there he would be able to create pages for ex
vmassol - (12:19): he'll see a dashboard of the space
vmassol - (12:19): with actions for the space
vmassol - (12:19): including action to create pages
vmassol - (12:20): said diffrently there'll be a template to visualize a space
vmassol - (12:20): (which is different from the template to visualize a page)
evalica - (12:20): the nice thing about the 2 inputs was that you weren't forced to create a page just in the current space
vmassol - (12:20): evalica: why do you want not to have 2 inputs?
evalica - (12:21): I want to have 2 inputs instead of two specialized panels
vmassol - (12:21): this is different
vmassol - (12:21): we need 2 inputs for creating a page
vmassol - (12:21): smae as for the create page menu action
vmassol - (12:21): btw
vmassol - (12:21): it needs to be improved
vmassol - (12:21): (need your help on tis)
vmassol - (12:21): s/tis/this/
mflorea - (12:22): but what would happen in the new model if the space doesn't exit?
vmassol - (12:22): so that either we have auto suggestion for existing spaces
mflorea - (12:22): s/exit/exists
vmassol - (12:23): mflorea: we need to define that but the "normal" strategy would be that you couldn't create a page in a space that doesn't exist
mflorea - (12:23): ok
vmassol - (12:24): evalica: there are 3 concepts that are different: create page, create space, create wiki
vmassol - (12:25): evalica: again right now there no notion of space in xwiki but we want to fix this
vmassol - (12:25): s/there/there's/
vmassol - (12:25): (right now there's only a notion of namespace for a page but not of a space entity)
vmassol - (12:26): (said differently there's no table for spaces in the DB, spaces are not even a page right now)
vmassol - (12:32): notification: xwiki.org is going to be restarted in 5 mn
vmassol - (12:32): (for maintenance)
tmortagne joined #xwiki at 12:37
alex-xwiki joined #xwiki at 12:38
alex-xwiki left at 12:39 (Client Quit
vmassol - (12:40): tmortagne: what's the status re the 2.4M1 release?
alex1 joined #xwiki at 12:40
vmassol - (12:40): I saw some tests failing on 2.3 rbanch this morning and 1 on trunk
alex1 is now known as Guest55994 ([email protected]
vmassol - (12:40): oh it seems it's 45 failing again on trunk now
Guest55994 left at 12:40 (Client Quit
darkone joined #xwiki at 12:41
darkone left at 12:41 (Client Quit
salecss joined #xwiki at 12:41
vmassol - (12:42): who's working on fixing tests?
vmassol - (12:43): thoughts: we need to change the way we work since it seems to be a common pattern now that we spend 3-4 days fixing tests before a release.
vmassol - (12:44): CalebJamesDeLisl: ping me when you have committed something so that I can help you/continue the work of cleaning up ui-tests
CalebJamesDeLisl - (12:45): Ok.
vmassol - (12:48): news
vmassol - (12:48): !news
florinciu joined #xwiki at 13:09
anamarias joined #xwiki at 13:13
florinciu left at 13:49 (Quit: Leaving.
CalebJamesDeLisl - (13:57): vmassol: committed.
CalebJamesDeLisl - (13:59): Haven't changed any tests yet, just made the framework easier to use.
CalebJamesDeLisl - (13:59): No more passing around the WebDriver!
florinciu joined #xwiki at 14:08
vmassol - (14:13): checking
vmassol - (14:15): CalebJamesDeLisl: something I don't understand
vmassol - (14:15): for ex: public String getURL(String space, String page)
vmassol - (14:15): it's now in BasePage
vmassol - (14:15): I don't understand
vmassol - (14:15): BasePage is supposed to represent a given apge
vmassol - (14:15): page
vmassol - (14:15): but here you pass it space and page
vmassol - (14:15): it's not logical
CalebJamesDeLisl - (14:16): It is used in pages in the open method.
CalebJamesDeLisl - (14:17): void open() { getDriver().get(getURL("space", "page"))
vmassol - (14:17): I don't undestand
vmassol - (14:17): it looks wrong to me
CalebJamesDeLisl - (14:17): Maybe it should be protected but I'm not sure that there is no valid use case for something else to use it.
vmassol - (14:18): I still don't undersand
vmassol - (14:18): where is this open method?
vmassol - (14:18): (so that I can check it)
CalebJamesDeLisl - (14:18): None yet because I haven't changed any tests. (there is one in the invitation test which is not committed.)
CalebJamesDeLisl - (14:19): s/invitation test/invitation page/
vmassol - (14:19): you say the getURL is used in the open method
vmassol - (14:19): but now you say there's no open method
vmassol - (14:19): I'm lost
CalebJamesDeLisl - (14:20): viewPage.open() was how we decided the page should be opened.
CalebJamesDeLisl - (14:20): I havn't committed any code with open methods yet (it's only in the invitation test.)
vmassol - (14:20): ok I need to re-read the whole thing
vmassol - (14:20): because the changes don't make any sense to me
vmassol - (14:21): the context looks strange too
CalebJamesDeLisl - (14:21): My thinking is that TestUtils is wrong and everything should be moved somewhere else.
vmassol - (14:21): yes but what did is even more wrong IMO
vmassol - (14:21): but I need to read a bit more to be sure
CalebJamesDeLisl - (14:22): More wrong than all static? ouch.
vmassol - (14:22): yep
vmassol - (14:22): :)
vmassol - (14:22): and actuzlly you've introduced statics
CalebJamesDeLisl - (14:23): Well the context has to be referenced globally because junit doesn't allow us to store information between tests.
vmassol - (14:23): nope
vmassol - (14:23): it's done on *purpose*
vmassol - (14:23): by junit
CalebJamesDeLisl - (14:23): So there is no state?
vmassol - (14:23): it's not that it does'n't allow it
vmassol - (14:23): and junit has ways to share stuff too
vmassol - (14:24): I think what you want is a custom test suite
vmassol - (14:24): same as what I did in selenium-tests
vmassol - (14:24): (for the skin executor)
vmassol - (14:25): and I don't see any reason to share the executor
CalebJamesDeLisl - (14:26): Well it has to be available to be stopped.
vmassol - (14:26): errr?
florinciu left at 14:27 (Read error: Connection reset by peer
vmassol - (14:27): that's in SetUp only
vmassol - (14:27): Testsetup that is
CalebJamesDeLisl - (14:27): The XWikiExecutor should be left to keep running after the tests terminate?
vmassol - (14:27): or in th etest suite (in junit4)
vmassol - (14:27): it wasn't before
vmassol - (14:27): why would it now
anamarias left at 14:27 (Quit: anamarias
vmassol - (14:28): again the question re teh executor is why would a test want to know it
vmassol - (14:28): it's a private implementation detail
vmassol - (14:28): that only belongs to the suite
CalebJamesDeLisl - (14:28): So how do you run one test?
CalebJamesDeLisl - (14:29): -Dtest=InvitationTest
vmassol - (14:29): in the same manner
vmassol - (14:30): but again there's no reason to expose it
vmassol - (14:30): to stuff other than code used to start/stop the container
vmassol - (14:31): let me think a bit more
vmassol - (14:31): to see if there's a better pattern
vmassol - (14:31): re getURL I'm still at a loss to understand it
CalebJamesDeLisl - (14:32): I can't think of what object getURL belongs to more than the page object.
vmassol - (14:33): I'm talking abotu getURL with params of course
vmassol - (14:33): getURL without params make sense
CalebJamesDeLisl - (14:35): Still there is a use for getURL with params. To what object would that belong?
vmassol - (14:35): I cannot answer without knowing tyhe use case
vmassol - (14:35): probably AbstractTest
CalebJamesDeLisl - (14:36): well BasePage.getURL with no params might simply call getURL("space", "page");
CalebJamesDeLisl - (14:38): If it is determined that we _must_ have a util class, IMO it must be instantiated and made available the way the WebDriver is.
CalebJamesDeLisl - (14:41): What if instead of BasePage#getURL(String, String) we had BasePage#open(String, String)? That satisfies all use cases I can think of.
vmassol - (14:41): I don't see why it would call getURL(space, page)
vmassol - (14:41): I don't see a reason for that
vmassol - (14:41): a page knows where it is
vmassol - (14:42): you don't need to tell it again
vmassol - (14:42): open(string, string) is wrong too
vmassol - (14:42): for the same reason
vmassol - (14:42): still reading....
CalebJamesDeLisl - (14:44): if open(String, String) is unavailable then each page object will have to know it's exact URL.
CalebJamesDeLisl - (14:48): So are you for advancing from here or merging out the commit. If you're for polishing it up then I'll commit changes to some page objects.
vmassol - (14:52): one thing I'm sure of is that passing executor to BaseElement is not correct
vmassol - (14:54): you can go on CalebJamesDeLisl, I'll do some modifications after
CalebJamesDeLisl - (14:55): Cool. I agree there are some things to fix. not having to pass the driver around like the XWikiContext is big though.
vmassol - (14:55): I knew lots of good practices with junit3
vmassol - (14:55): unfortiuately I don't know junit4 well enough
CalebJamesDeLisl - (14:57): How'd you like that getUnstoppable()? Kind of principle of least authority type thing.
CalebJamesDeLisl - (14:57): I spent way too much time getting that working.
vmassol - (14:57): first you removed my comments :)
vmassol - (14:57): and you didn't add new comments
vmassol - (14:58): even though what you did is the same kind of hack
vmassol - (14:58): getUnstoppable is pretty un-undertandable initially without comments ;)
CalebJamesDeLisl - (14:58): Yes, I will put the comments back. hack? Why do you say that?
vmassol - (14:58): by hack I mean signalling to AbstractTest that it's inside an executing suite
vmassol - (14:59): btw it should know that by itself normally
vmassol - (14:59): (but don't know how to do that in jjunit4)
vmassol - (14:59): actually I remove that
vmassol - (15:00): it's a good thing that the test doesn't know it's parent
CalebJamesDeLisl - (15:00): I didn't think of it that way, I was thinking "how to hold the stopping function close so nothing else can call it"
CalebJamesDeLisl - (15:00): I think that pattern would be useful other places where you want to pass some authority but not all to another class.
lucaa left at 15:01 (Ping timeout: 272 seconds
vmassol - (15:01): the NullExecutor pattern is good to me
vmassol - (15:01): no problem with that
vmassol - (15:02): (I would have done it as the executor level)
CalebJamesDeLisl - (15:02): You're right the executor is only needed to stop so it should be null. hmm how to do that?
KermitTheFragger left at 15:02 (Quit: Leaving
CalebJamesDeLisl - (15:03): It would be cool if java allowed us to take away the stop method from the class and hold it separately. There are some good things about javascript.
vmassol - (15:04): in junit3 I would write a test suite that would call the constructor of the test class, passing it the info it needed
vmassol - (15:04): s/needed/needs/
CalebJamesDeLisl - (15:04): Reflection?
vmassol - (15:04): no need for reflection
vmassol - (15:04): to set the info
vmassol - (15:05): it probably works similarly in junit4 actually
CalebJamesDeLisl - (15:06): I'll try to figure out how to keep the executor null, hopefully I can do it entirely inside of getUnstoppable.
salecss left #xwiki at 15:40
anna_ left at 15:55 (Quit: anna_
florinciu joined #xwiki at 16:12
sdumitriu - (16:19):
sdumitriu - (16:21): q
evalica left at 16:24 (Read error: Connection reset by peer
jvdrean - (16:26): FYI I'm waiting for the space creation problem to be fixed before releasing 2.3.1, that brings us to monday (vmassol, npm, CalebJamesDeLisl)
vmassol - (16:26): jvdrean: who's working on fixing it? marius?
CalebJamesDeLisl - (16:27): re: the space creation panel?
Enygma` left at 16:27 (Ping timeout: 264 seconds
jvdrean - (16:28): panel + wiki dashboard, yes Marius is on it
anna joined #xwiki at 16:29
silviar left at 16:46 (Quit: Leaving.
fmancinelli - (17:10): Quick question: is there a way (a macro maybe?) to insert footnotes while writing a paragraph? Something equivalent to the LaTeX text\footnote{Footnote content here} ?
tmortagne - (17:16): i think there is a macro for that, checking
tmortagne - (17:16): fmancinelli: http://code.xwiki.org/xwiki/bin/view/Macros/Footnote20Macro ?
fmancinelli - (17:16): yep! Thanks
abusenius - (17:18): hello @all
abusenius - (17:18): is there a reason why html macro doesnt set the parend of the XDOM it parses?
abusenius - (17:18): s/parend/parent/
vmassol - (17:19): hmm I don't remember a "parent" feature, maybe thomas does
abusenius - (17:21): every block has a parent, and XDOM is a block too
tmortagne - (17:23): abusenius: i don't understand what you expect exactly
tmortagne - (17:23): which XDOM are you talking about ?
vmassol - (17:24): XDOM is top level so it doesn't have a parent
abusenius - (17:24): well, {{html wiki=true}} parses the content with xwiki parser, and it returns an XDOM
tmortagne - (17:25): no it return a list of block like any other macro
CalebJamesDeLisl - (17:25): s/XDOM/Block/ ??
abusenius - (17:25): no, HTMLMacro.renderWikiSyntax, line 232
abusenius - (17:25): XDOM xdom = parser.parse(new StringReader(content));
CalebJamesDeLisl - (17:26): If I remember right XDOM extends Block.
abusenius - (17:26): well, yes
abusenius - (17:26): the problem is, that this xdom becomes the root of all other blocks containing in the html macro
tmortagne - (17:26): abusenius: why do you want parent in this temporary XDOM ? for macro executed inside html macro ?
abusenius - (17:27): I want to exclude nested script macros
abusenius - (17:27): and a nice possibility imo is to look for MacroMarkerBlock in the parents
tmortagne - (17:27): ok
abusenius - (17:28): but with html I cant reach the toplevel parent any more
vmassol - (17:28): why not a transformation?
abusenius - (17:28): so volocity > html > groovy is not counted as nested
abusenius - (17:29): vmassol, wdym?
tmortagne - (17:29): vmassol: html macro always produce just a RawBlock from outside POV, you can't filter script macro inside it
vmassol - (17:29): HTML macro is a black box anyway right now
abusenius - (17:30): script macros too, until they are executed
tmortagne - (17:30): vmassol: yes that's why you can't use transformation
vmassol - (17:30): yes but I don't get this thing about parent
vmassol - (17:30): if we want to introduce a notion of filter
vmassol - (17:30): we need to modify te html macro
tmortagne - (17:30): abusenius: wants to try filtering at script macro level
tmortagne - (17:31): by looking if he is already inside another script macro
abusenius - (17:31): http://jira.xwiki.org/jira/browse/XWIKI-5223
vmassol - (17:31): ok I understand now
vmassol - (17:31): don't know if it's a good idea though
abusenius - (17:31): I added a parent to xdom parsed by html, seems to work locally
abusenius - (17:32): any other ideas how to do it?
tmortagne - (17:32): abusenius: that's not the nicest, if we want to provide this link, we should replace the XDOM by a MacroMarker("html")
tmortagne - (17:32): filtering or not filtering
abusenius - (17:33): ok, sounds reasonable
tmortagne - (17:33): that can be usefull to access the document content from submacros
tmortagne - (17:33): imagine a toc macro inside html macro
tmortagne - (17:34): currently i guess it does not work because toc macro can't access the whole document content
abusenius - (17:34): I'm just not sure if some other code relies on the fact that stuff inside html macros is independent from the document, or it's just a bug
tmortagne - (17:34): i will create an issue about this use case and fix that, filtering is another subject and i'm still not sure we should do that that way
tmortagne - (17:35): abusenius: i doubt that there is no reason for html macro content to be isolated
tmortagne - (17:35): that's a bug
abusenius - (17:35): good
abusenius - (17:35): tmortagne, why do you think filtering this way is not a good solution?
tmortagne - (17:36): i'm not sure systematic filtering itself is a good idea
abusenius - (17:36): what could we do instead then?
tmortagne - (17:37): no idea
tmortagne - (17:37): that's why i'm using things like "i'm not sure" ;)
abusenius - (17:37): IMO we should fix XWIKI-5223 anyway, if we find a better solution later - great
abusenius - (17:38): and filtering would fix scripting issue
florinciu left at 17:38 (Quit: Leaving.
abusenius - (17:38): although html will still be there
abusenius - (17:38): {{/html}}
tmortagne - (17:38): well it would fix security issue for usre but i could also break use cases
tmortagne - (17:38): s/i could/it could/
abusenius - (17:38): like what?
abusenius - (17:39): IMO nested scripts are just wrong
CalebJamesDeLisl - (17:39): Better filter {{include}} macros too ;)
abusenius - (17:39): yes, they are a problem too, but I havent looked how they work yet
tmortagne - (17:39): vmassol: hmm Transformation#transform takes a XDOM, even if there is no technical reason for that, we should change it i think
tmortagne - (17:40): (for Block)
vmassol - (17:41): yes we could
vmassol - (17:41): I agree Block is better from a design pov
abusenius - (17:41): btw, CalebJamesDeLisl , {{include}} takes an existing document, which is another problem than the scripts IMO
vmassol - (17:41): XDOM should be changed too in this case
vmassol - (17:42): to something that represents a set of blocks
CalebJamesDeLisl - (17:42): {{include}} is safe as it is (it delegates power) with the problem you're looking at, it can be used to delegate yourself power.
vmassol - (17:42): but that doesn't have to be terminal
vmassol - (17:42): right now it's meant to be terminal
mflorea left at 17:43 (Quit: Leaving.
vmassol - (17:44): CollectionBlock or something like that but maybe hard to change at this stage
CalebJamesDeLisl - (17:45): What ever happened to the plan for code macro only be able to be ended using a "password"?
tmortagne - (17:46): vmassol: yep we need a CollectionBlock, we talked about that some time ago but never implemented it
abusenius - (17:46): CalebJamesDeLisl, was there a discussion about it or something?
tmortagne - (17:47): CalebJamesDeLisl: code macro=script macro ? or are you really talking about code highlight macro ?
abusenius - (17:47): or is it unrelated to scripting issue?
tmortagne - (17:47): (in that case i don't understand)
CalebJamesDeLisl - (17:47): I seem to recall {{code}} (highlighting) there was talk of using a unique string to end it.
tmortagne - (17:49): CalebJamesDeLisl: ha you mean the discussion about putting a ending amcro syntax as content of a macro
tmortagne - (17:49): it was not just about code macro but about any macro
CalebJamesDeLisl - (17:49): Apply that to other macros: #set($key = $mathtool.random()) {{html endsWith="$key"}} $userInput {{$key}}
CalebJamesDeLisl - (17:49): Good luck breaking out of that.
CalebJamesDeLisl - (17:52): On another note: I'd like to gut most of the functionality in TestUtils which isn't being used yet. Any objections? vmassol?
abusenius - (17:52): this example is not very user friendly, but if this would happen automatically, this would be cool
CalebJamesDeLisl - (17:53): I figure it TestUtils will still be available in the revision history so functions can be ported to their proper place.
vmassol - (17:53): CalebJamesDeLisl: go ahead but we might need some of them in AbstractTest
vmassol - (17:54): you can remove and check what's neede dby the tests
CalebJamesDeLisl - (17:54): Maybe we will need a TestUtils but I say it must be an instance. re check: it builds now.
CalebJamesDeLisl - (18:01): Also I'm deprecating it...
vmassol - (18:02): why deprecate?
CalebJamesDeLisl - (18:04): Because I want to remove the remaining methods and if a util class is needed, make one which is instantiated.
CalebJamesDeLisl - (18:05): gotoPage should be a page object method, deletePage should be a function of the DeletePage page object.
CalebJamesDeLisl - (18:07): The only function which is arguably a "util" function is escapeURL and if that is needed and we don't want it in AbstractTest and it is needed in multiple places, then it should be a function of a util class which is instanciated.
CalebJamesDeLisl - (18:11): I'm trying to figure out how I should handle cases where you want to do something (like login) and then be redirected to another page (with xredirect).
CalebJamesDeLisl - (18:12): LoginPage.LoginAndOpen(BasePage page) ?
CalebJamesDeLisl - (18:12): I really want to avoid adding static methods.
vmassol - (18:13): you want loginAsAdmin() to return a page is that it?
CalebJamesDeLisl - (18:14): Yes. that would skip going to the main page every time you log in.
vmassol - (18:14): (loginAs())
vmassol - (18:14): we don't go to the main page do we?
vmassol - (18:14): we don't have to I mean
CalebJamesDeLisl - (18:14): You end up where ever clicking login sends you (main page by default)
vmassol - (18:15): sure and that's ok
vmassol - (18:15): it's just that now AbstractAdminAuthenticatedTest navigates to the home page to be sure
vmassol - (18:15): but it doesn't have to
CalebJamesDeLisl - (18:15): It means you have to login, load the main page, then go to the page you are testing.
vmassol - (18:15): why?
CalebJamesDeLisl - (18:16): Because the login action sends a redirect to the main page.
vmassol - (18:16): not really
vmassol - (18:16): it redirects to wheerver you were
vmassol - (18:16): not to the home page
CalebJamesDeLisl - (18:16): So either login and then go to the page to test, or go to the page to test then login.
CalebJamesDeLisl - (18:17): One page gets loaded unnecessarily.
vmassol - (18:17): btw re login
vmassol - (18:17): maybe we can bypass the page paradigm somehow
CalebJamesDeLisl - (18:18): You mean bypass the selemium2 page object paradigm?
vmassol - (18:18): ie do the same as what the login page does
vmassol - (18:18): ie send a http post
CalebJamesDeLisl - (18:19): I was going to do that.
CalebJamesDeLisl - (18:19): Actually you can login with a get. I have admin on localhost bookmarked.
vmassol - (18:19): ok
CalebJamesDeLisl - (18:19): Not good though.
CalebJamesDeLisl - (18:20): Anyway I'm sure we can post but we need to load another page, preferably the page we are testing.
CalebJamesDeLisl - (18:21): InvitationPage ip = new InvitationPage();
CalebJamesDeLisl - (18:21): new PostLogin(ip);
CalebJamesDeLisl - (18:21): s/PostLogin/PostLoginAsAdmin/
vmassol - (18:22): the new sounds overkill
vmassol - (18:22): IMO a method in AbstractTest would be enough
vmassol - (18:22): loginAs(…)
vmassol - (18:22): + loginAsAdmin()
CalebJamesDeLisl - (18:22): It's using a constructor because static is ugly.
vmassol - (18:23): constructor is not better
vmassol - (18:23): if you don't have a real useful object
CalebJamesDeLisl - (18:23): I know, constructors are just static anyway.
vmassol - (18:23): it's actually worse
vmassol - (18:23): since you'll get several new
vmassol - (18:23): instead of one
CalebJamesDeLisl - (18:23): I don't like putting everything in AbstractTest.
vmassol - (18:23): anyway I don't see why you'd need either a staitc or a new
vmassol - (18:23): it's not everything
vmassol - (18:24): it's eveyrthing required by tests and not related to a given page
vmassol - (18:24): s/given page/page/
CalebJamesDeLisl - (18:24): But login is related to a page.
CalebJamesDeLisl - (18:24): Also delete is the same.
vmassol - (18:24): no
vmassol - (18:24): login is not
vmassol - (18:24): it would be if you went through the LoginPage page
vmassol - (18:25): same for delete
CalebJamesDeLisl - (18:25): IMO all things login should be kept with LoginPage.
vmassol - (18:25): I don't agree
vmassol - (18:25): deifnitelt not
vmassol - (18:25): you're mixing
vmassol - (18:25): Page Obect which is a DSL for page navigation
vmassol - (18:25): with tests
vmassol - (18:26): unless you wish to have static methods in LoginPage but that's worse
vmassol - (18:26): actually
CalebJamesDeLisl - (18:26): Suppose we changed the password for Admin? How many places would have to be changed?
vmassol - (18:26): wait
vmassol - (18:26): we could do the same thing as junit does with Assert
vmassol - (18:26): ie have static imports
CalebJamesDeLisl - (18:27): static import LoginPage.LoginAsAdmin?
vmassol - (18:27): I still dont think it has anything to do with Login Page
vmassol - (18:27): so I'm still agasint that
vmassol - (18:27): Login Page is about the login page
vmassol - (18:27): doing a post has nothing to do with the login page
sdumitriu left at 18:28 (Ping timeout: 260 seconds
CalebJamesDeLisl - (18:28): It's nice to have "Admin", "admin" all in one place.
vmassol - (18:28): tha's compltely different
vmassol - (18:28): it's about login
vmassol - (18:28): not about the login page
sdumitriu joined #xwiki at 18:28
CalebJamesDeLisl - (18:29): The logic is more compelling for delete, when you delete-confirm something you get a delete page.
vmassol - (18:29): it's the same
vmassol - (18:29): you can delete without going through the page paradigm
vmassol - (18:29): that's why we use confirm=1
CalebJamesDeLisl - (18:29): But when you do you end up on a delete page.
CalebJamesDeLisl - (18:29): There you have the option to restore.
vmassol - (18:29): same for login
vmassol - (18:30): you end up on some page
vmassol - (18:30): but these do not interest us
vmassol - (18:30): when you use that utility api
vmassol - (18:30): since we don't care about pages
vmassol - (18:30): in those cases
vmassol - (18:30): we ignore them
CalebJamesDeLisl - (18:30): I thought you like the page object paradigm ;)
vmassol - (18:30): otherwise if we don't want to ignore them then we use the page paradigm
vmassol - (18:31): no no
vmassol - (18:31): you're mixing stuff :)
vmassol - (18:31): the page paradigm is to be used when you want to test it
vmassol - (18:31): we're not talking about testing it here
CalebJamesDeLisl - (18:31): Maybe login should be a function of BasePage because it can be used as an alturnative to open()
anna left at 18:31 (Quit: anna
vmassol - (18:31): login is a function of BasePAge !!
vmassol - (18:32): actually it's viewPage probably
vmassol - (18:32): since the login button doesn't exist in edit mode for ex
vmassol - (18:32): but again
vmassol - (18:32): you're mixing tests with test setup
vmassol - (18:32): let me try to reprhase it
vmassol - (18:32): we have one test class called LoginLogoutTest
vmassol - (18:33): the goal of that page is to test the login/logout using the Page Object strategy
vmassol - (18:33): since it's about doing as a user would do
vmassol - (18:33): but that's the only test that need to do this
CalebJamesDeLisl - (18:33): Currently that login function is used wherever we need admin.
vmassol - (18:33): all other tests which test other stuff don't need to retest this
CalebJamesDeLisl - (18:33): Agreed.
vmassol - (18:33): they just need to have the correct setup
vmassol - (18:33): before they start
CalebJamesDeLisl - (18:34): I like login as a function of BasePage because you might want to edit page X as admin.
vmassol - (18:34): it's wrong IMO
vmassol - (18:35): BasePAge must have apis
vmassol - (18:35): that are common to all pages
CalebJamesDeLisl - (18:35): Even if the button isn't there, as you said we are not testing buttons.
vmassol - (18:35): login is not common to all pages
vmassol - (18:35): so it shouldn't be there
vmassol - (18:35): all PAge Obecet
vmassol - (18:35): are representation of UIs
vmassol - (18:35): that's their point
vmassol - (18:35): s/Obecet/Object/
CalebJamesDeLisl - (18:36): So you would require tests to view a page in order to login then login in order to edit a page?
vmassol - (18:36): nope I said the opposite just above ;)
vmassol - (18:36): suggesting to bypass the page paradigm for logging (except for LoginLogoutTest obviously)
vmassol - (18:36): and you said you were about to do this
CalebJamesDeLisl - (18:36): When I say login I mean post credentials.
vmassol - (18:37): yes
CalebJamesDeLisl - (18:37): So if I want to run a test which requires me to edit a page, shouldn't I post credentials with xredirect to that page?
CalebJamesDeLisl - (18:38): (to edit action on that page.)
vmassol - (18:38): yes we could have an api for that
vmassol - (18:38): if we want to save a step
CalebJamesDeLisl - (18:38): That's why I wanted a login function in BasePage.
vmassol - (18:39): I don't see the relationship
vmassol - (18:39): AbstractTest.loginAs(username, password, boolean, PageReference)
vmassol - (18:39): pagereference could simply be 2 parameters in practice
vmassol - (18:39): space and page
CalebJamesDeLisl - (18:39): Why are you passing the page reference, call login on the page.
vmassol - (18:40): yes we could pass a PageObject
vmassol - (18:40): MyPage page = new MyPage()
CalebJamesDeLisl - (18:40): SomePage sp = new SomePage(); sp.loginAs(username, password, rememberMe);
vmassol - (18:40): loginAs("Admin", "admin", true, page)
vmassol - (18:41): btw this is wrong
CalebJamesDeLisl - (18:41): sp.loginAs is the same as sp.open() except it posts login credentials.
CalebJamesDeLisl - (18:41): wrong?
vmassol - (18:41): yes :)
vmassol - (18:41): they are similar
vmassol - (18:41): but it won't work
vmassol - (18:41): hmmm
vmassol - (18:41): maybe it will
vmassol - (18:42): yes it will
vmassol - (18:42): sorry was rthinking about something else
vmassol - (18:42): but that's ok actually
vmassol - (18:42): we agree except that I disagree to put a non UI action in BasePage
CalebJamesDeLisl - (18:42): Hey, I spent last night trying to break java's type safety. I don't know the maening of "won't work" ;)
vmassol - (18:42): for me all non UI should go in AbstractTest
vmassol - (18:43): and if we really find it too big then in static imports
CalebJamesDeLisl - (18:43): Well BasePage.open() is in basepage because you need a page to open.
vmassol - (18:43): well that's wrong to me
vmassol - (18:44): very wrong should I say :)
vmassol - (18:44): again it has nothing to do with Page Objects
CalebJamesDeLisl - (18:44): So you have util.open(BasePage) ?
vmassol - (18:45): yes without the util part
vmassol - (18:45): it can return an instance btw
CalebJamesDeLisl - (18:45): open returns what?
vmassol - (18:45): hmm that will be hard actually
vmassol - (18:45): it would work only for well known pages
vmassol - (18:45): ;)
vmassol - (18:46): so indeed:
vmassol - (18:46): MyPage page = new MyPage();
vmassol - (18:46): open(page)
vmassol - (18:46): I prefer
vmassol - (18:46): navigate
vmassol - (18:46): to open
CalebJamesDeLisl - (18:46): then how does "open" know where "page" is?
vmassol - (18:46): PageObject has a getPageReference method
vmassol - (18:47): (or getURL but mmaybe we need finer-grained than getURL))
CalebJamesDeLisl - (18:47): So every page knows it's url.
CalebJamesDeLisl - (18:47): A page which is not accessable via url cannot exist.
vmassol - (18:47): not sure about the url
vmassol - (18:47): but at least it knows it's location
vmassol - (18:48): s/it's/its/
CalebJamesDeLisl - (18:48): I was going to do this but I worried about pages which are only accessable via post.
vmassol - (18:49): that works too with location
vmassol - (18:49): by definition a page has a location and that's independent of how it's accessed
vmassol - (18:50): we could even reuse the Reference code
vmassol - (18:50): from xwiki-model
CalebJamesDeLisl - (18:50): So what happens if i have a page which is only accessable via post, and I call open(page)?
vmassol - (18:51): do you have an example?
vmassol - (18:51): what does the test want to do?
CalebJamesDeLisl - (18:51): Invitation preview page or sent page should only be available to post requests.
vmassol - (18:52): I doubt you'll want to access these directly
vmassol - (18:52): without going through the ui
CalebJamesDeLisl - (18:52): What happens if you do? Blows up?
vmassol - (18:52): why?
vmassol - (18:52): I don't understand
CalebJamesDeLisl - (18:52): Well you have provided an open function in AbstractTest, let's see what I can try to open.
vmassol - (18:52): I really don't understand what you are getting at
vmassol - (18:53): it's not open
vmassol - (18:53): it's navigate
vmassol - (18:53): this has nothing to do with navigatiobn
vmassol - (18:53): you just call something
CalebJamesDeLisl - (18:53): +4 keystrokes.
vmassol - (18:53): and?
CalebJamesDeLisl - (18:53): and not familiar to selenium1 test writers.
CalebJamesDeLisl - (18:53): Selenium2 uses get
vmassol - (18:54): gotoPage is fine too
vmassol - (18:54): open just doesn't mean enough
CalebJamesDeLisl - (18:54): +1 keystroke ;)
vmassol - (18:54): so?
vmassol - (18:54): what's the b with keystokes, I don't get it
vmassol - (18:54): you want to call it o()?
vmassol - (18:54): I'm ?1 to that
CalebJamesDeLisl - (18:55): Actually my main attraction to open is that it's familiar to selenium1
vmassol - (18:55): I don't think it's a valid criteria at all
CalebJamesDeLisl - (18:55): I'm not that concerned with the name though.
vmassol - (18:55): selenium2 is not sleeinum1
vmassol - (18:55): and the api is compleltely different
vmassol - (18:55): sele nium2 is webdriver
vmassol - (18:55): a 100% different api
vmassol - (18:55): so I don't get the point
vmassol - (18:55): :)
CalebJamesDeLisl - (18:56): IE is not Firefox but still their idea of javascript is annoying.
vmassol - (18:56): and even if it were similar
vmassol - (18:56): I will always agree to more clarity rather than less clarity :)
vmassol - (18:56): especially in tests and apis
CalebJamesDeLisl - (18:56): loadPageAndDisplayInBrowserWindow()
CalebJamesDeLisl - (18:56): Ok. this is turning into a bike shed.
vmassol - (18:56): yes
vmassol - (18:57): this is good
vmassol - (18:57): except it has unnecessary redundancies
vmassol - (18:57): windows is unnecessary
vmassol - (18:57): and browser too since it's only about browsers
CalebJamesDeLisl - (18:57): My main concern is where the open function will be.
vmassol - (18:58): I don't see any alternative
CalebJamesDeLisl - (18:58): If it's a function of the test then it must ask the page where it is.
CalebJamesDeLisl - (18:58): Pages which need to so something special to open will not be accessable.
CalebJamesDeLisl - (18:58): However the function will still be there so they will fail at runtime.
CalebJamesDeLisl - (19:00): If we are to take a page from javascript api then your idea would be the one used.
CalebJamesDeLisl - (19:00): like window.loaction=
vmassol - (19:01): thanks for the discussion. I have to go now. There's a dinner planned with all neighbours (it's a special neighbour day today) :)
CalebJamesDeLisl - (19:02): Thank you. Enjoy yourself.
fmancinelli left at 19:02 (Ping timeout: 265 seconds
arkub left at 19:07 (Quit: Leaving
florinciu joined #xwiki at 19:21
florinciu left at 19:31 (Quit: Leaving.
tmortagne left at 19:33 (Quit: Leaving.
jvdrean left at 19:42 (Quit: Leaving.
bblfish left at 19:46 (Quit: Leaving.
abusenius left at 19:49 (Ping timeout: 252 seconds
mflorea joined #xwiki at 21:05
abusenius joined #xwiki at 21:26
anamarias joined #xwiki at 21:26
anamarias left at 21:35 (Quit: anamarias
lucaa joined #xwiki at 21:35
florinciu joined #xwiki at 22:18
anamarias joined #xwiki at 22:18
anamarias left at 22:22 (Client Quit
fmancinelli joined #xwiki at 22:22
CalebJamesDeLisl - (22:57): I just realized open could return an undetermined type if it was: public T open(Class<T> clazz)
florinciu left at 23:08 (Quit: Leaving.
fmancinelli left at 23:11 (Ping timeout: 260 seconds
vmassol left at 23:21 (Quit: Leaving.
anna__ joined #xwiki at 23:51
mflorea left at 23:51 (Quit: Leaving.
arkub joined #xwiki at 23:56
{{/code}}