Hi Benjamin,

We are using Spock for testing, and have modified the setupStage() method 
to support optional headless testing with Monocle,
which is working well on Windows (the code is in groovy):

 void setupStage(Closure<javafx.scene.Node> rootNodeFactory)
  {
    if (fx == null && isHeadless)
    {
      // Cribbed from: 
https://gist.github.com/hastebrot/cbca1128dd791966e3a6
      PlatformFactory.instance = new MonoclePlatformFactory()
      NativePlatformFactory.platform = new HeadlessPlatform()
    }
    fx = new GuiTest()
    fx.rootNodeFactory = rootNodeFactory
    fx.setupGuiTest()
  }

It works nicely until fx.clickOn is called. The TestFX library is still 
moving the Windows mouse!

Any thoughts?


Thanks,

Neil




From:   Benjamin Gudehus <hasteb...@gmail.com>
To:     Tom Eugelink <t...@tbee.org>, 
Cc:     "openjfx-dev@openjdk.java.net" <openjfx-dev@openjdk.java.net>
Date:   11/12/2014 03:10 AM
Subject:        Re: Monocle in 8u25
Sent by:        "openjfx-dev" <openjfx-dev-boun...@openjdk.java.net>



That would be nice, Tom.

Example usage:

Since com.sun.glass.ui.PlatformFactory can't find Monocle classes from the
external jars, we need to change

public static void main(String[] appArgs) {
    Application.launch(appClass, appArgs);
}

to

public static void main(String[] appArgs) {
    new ToolkitApplicationLauncher().launch(appClass, appArgs);
}

and start the Application with -Djavafx.monocle.headless=true.

ToolkitApplicationLauncher.jar:
https://gist.github.com/hastebrot/cbca1128dd791966e3a6


On Wed, Nov 12, 2014 at 8:48 AM, Tom Eugelink <t...@tbee.org> wrote:

>  I can roll it out under the same name (openjfx-monocle-1.8.0_20) within
> the org.jfxtras group. Just say so.
>
> Tom
>
>
> On 12-11-2014 08:30, Benjamin Gudehus wrote:
>
>    Hi all!
>
>  Files and instructions are available at 
https://github.com/TestFX/Monocle
> .
>
>  Releases with jars: https://github.com/TestFX/Monocle/releases
>
>  License (taken from OpenJFX respository):
> https://github.com/TestFX/Monocle/blob/master/LICENSE
>
>  Would be nice to have this available from Maven.
>
>  --Benjamin
>
> On Wed, Nov 5, 2014 at 8:20 PM, Tom Eugelink <t...@tbee.org> wrote:
>
>> This is extremely good news. I have no problem to "drag" that library
>> along in the JFXtras project (project name seems to be a good match for
>> this usage ;-) and release it to maven - if that is allowed by the 
JavaFX
>> license.
>>
>> Tom
>>
>>
>>
>> On 5-11-2014 16:57, Benjamin Gudehus wrote:
>>
>>> Hi Sean,
>>>
>>> I've put the Monocle sources directly in my code directories for
>>> testing purposes. Putting it into a separate Jar is possible and I
>>> thought that pre-compiled jars could be provided via Maven.
>>>
>>> I didn't do a complete OpenJFX build, because I was only interested in
>>> the Headless component of Monocle, i.e. I didn't needed the
>>> platform-dependent dynamic libraries.
>>>
>>> Rough instructions were given in a previous mail. There were some
>>> request to provide the pre-compoile jars so I will additionally set up
>>> a public repository with detailed instructions when I'm back home.
>>>
>>> --Benjamin
>>>
>>> On 11/5/14, Sean True <sean.t...@gmail.com> wrote:
>>>
>>>> Did you build the glass/ui/monocle sources into a separate jar, or 
did
>>>> you
>>>> do a complete OpenJFX build?
>>>>
>>>> If you did a separate build, a recipe would be extremely helpful.
>>>>
>>>> -- Sean
>>>>
>>>> On Tue, Nov 4, 2014 at 6:17 PM, Benjamin Gudehus 
<hasteb...@gmail.com>
>>>> wrote:
>>>>
>>>>  I managed to run Monocle/Headless on Windows with 8u25. This will 
allow
>>>>> users to run headless tests.
>>>>>
>>>>> All what is needed is to copy all files from 
"com/sun/glass/ui/monocle"
>>>>> of
>>>>> "javafx-src.zip" and add the
>>>>> cursor resource files from
>>>>> "modules/graphics/src/main/resources/com/sun/glass/ui/monocle" of 
the
>>>>> related hg tag in the OpenJFX repository [1].
>>>>>
>>>>> Before Application#launch() is called we need to manually set the 
Glass
>>>>> and
>>>>> Monocle platforms:
>>>>>
>>>>> accessStaticField(com.sun.glass.ui.PlatformFactory.class, 
"instance",
>>>>>      new com.sun.glass.ui.monocle.MonoclePlatformFactory());
>>>>> 
accessStaticField(com.sun.glass.ui.monocle.NativePlatformFactory.class,
>>>>> "platform",
>>>>>      new com.sun.glass.ui.monocle.headless.HeadlessPlatform());
>>>>>
>>>>> The directory structure in 8u40 is a bit different, but there could 
be
>>>>> added version checks. Checking
>>>>> for the JVM vars "glass.platform" and "monocle.platform" might be 
also
>>>>> added to this code.
>>>>>
>>>>> [1] http://hg.openjdk.java.net/openjfx/8u-dev/rt/tags
>>>>>
>>>>>
>>>>> On Tue, Nov 4, 2014 at 8:42 PM, Benjamin Gudehus 
<hasteb...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>  Hmm. Seems that Class.forName() in com.sun.glass.ui.PlatformFactory
>>>>>> won't
>>>>>> retrieve externally defined PlatformFactorys. So I will try to set 
the
>>>>>> PlatformFactory.instance field manually, before the
>>>>>> Application/Tookit/FX-Thread is launched.
>>>>>>
>>>>>> On Tue, Nov 4, 2014 at 7:36 PM, Benjamin Gudehus 
<hasteb...@gmail.com
>>>>>> >
>>>>>> wrote:
>>>>>>
>>>>>>  Thank you. That makes it clearer. :)
>>>>>>>
>>>>>>> Is it possible to supply the headless part of Monocle in an 
external
>>>>>>> Jar
>>>>>>> for desktop platforms?
>>>>>>>
>>>>>>> As far as I know the only possibility to run TestFX tests with
>>>>>>> Hudson/Jenkins is in headless mode.
>>>>>>> TestFX's tests itself can only run with the X virtual framebuffer 
on
>>>>>>> Linux test clients for the Travis CI so far.
>>>>>>>
>>>>>>> So far the only advice I could give TestFX users who like to run
>>>>>>>
>>>>>>  headless
>>>>>
>>>>>>  tests is to use 1.8.0_20-ea-b05.
>>>>>>>



 
NOTICE from Ab Initio: This email (including any attachments) may contain 
information that is subject to confidentiality obligations or is legally 
privileged, and sender does not waive confidentiality or privilege. If 
received in error, please notify the sender, delete this email, and make 
no further use, disclosure, or distribution. 

Reply via email to