ciplogic.com
Live with grace. Write superb software.

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; GeSHi has a deprecated constructor in /var/www/blog/plugins/content/geshi/geshi/geshi.php on line 262

Since I was quite buzy lately with a thing called personal life, but also with the CodeEditor project, I had only a bit of time to actually look into Germanium, with a focus on the germanium-test-helpers project (for WebDriver/Selenium/Germanium maven integration). 

A JUnit test still looks like:

1
2
3
4
5
6
7
8
9
10
    @Test
    public void testDeployment() throws GermaniumExecutionFailed {
        new GermaniumSeleneseTest().runClasspathSuites("/tests/app-goes-up/enhance-selenium-test-suite.html",
                "/tests/app-goes-up/click-and-wait-test-suite.html")
            .withExtensions("userextension-do-some-click.js")
            .onTargetSite(getTargetSite())
            .onProfiles("ie")
            .now();
    }

But nonetheless, a bit of refactoring was needed regarding the test execution, thus I've addressed it now. Instead of 5 guice modules for the execution with confusing names there are only 3 now:

  1. GermaniumTestModule - is the module for the whole lifetime of the execution of the test.
  2. GermaniumExecutionModule - is the module for the lifetime of a Germanium (read browser) instance.
  3. SingleTestSuiteExecutionModule - is the module for the lifetime of a single test.

Thus, by creating child injectors, it's quite easy to build the object dependencies in an elegant way.

Updated selenium support to 2.33.0.

Some regressions were introduced, since the codeeditor and the gwt components were refactored out of the germanium project, but were addressed (namely the live browser script evaluator language mapping was now broken since the ProgrammingLanguage enum was changed). In order to make it independent there is now a script engine mapper.

Furthermore, we're now using submodules that will fetch the required child repositories as well when cloned. Thus in order to build it you need to either:

1
2
3
git clone --recursive https://This email address is being protected from spambots. You need JavaScript enabled to view it./bmustiata/seleniumaster.git germanium
cd germanium
mvn clean install

or in case you already have it checked out:

1
2
3
4
5
cd germanium
git pull
git submodule init
git submodule update
mvn clean install

Have fun.

A Selenese Test Suite si available that displays the results of the execution of a selenese test suite (see the below picture).

Also, the application was updated to GWT 2.5.1.

For documenting germanium, I've selected asciidoc as the format, and for drawing various graphs I will use shaape. Since shaape didn't supported UTF8, I decided to implement it. I am glad to see that this change was merged into their trunk.

Finally the actual results of the executions can be vizualized, for all the browser profiles where it was run. A detailed view of a test is next in the queue.

Another change that happened and is also visible in the screenshot, is the `close tab` button, that replaced the old `X` label.

Germanium

The one to rule them all. The browsers that is.

SharpKnight

SharpKnight is an Android chess game.

MagicGroup

MagicGroup is an eclipse plugin.