groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Anto Aravinth <anto.aravinth....@gmail.com>
Subject Call Method Without Params
Date Tue, 18 Aug 2015 05:10:42 GMT
Hi all,



I'm trying to create some DSL for my application. And here is what I have
done till now; The groovy script below calls the DSL after setting up the
base script class etc.



def handler = new SeleniumCallHandler()

def binding = new Binding(driver: handler.getDriver(),seleniumcallhandler:
handler)



def importCustomizer = new ImportCustomizer();

importCustomizer.addImport("By","org.openqa.selenium.By")



def config = new CompilerConfiguration();

config.addCompilationCustomizers importCustomizer

config.scriptBaseClass = SeleniumBaseScript.name



//driver.findElement(By.id("lst-ib")).sendKeys("Selenium!")



def shell = new GroovyShell(this.class.classLoader,binding,config)



shell.evaluate(new File("loadGroovyPage.groovy"))



and SeleniumBaseScript:

abstract class SeleniumBaseScript extends Script {

    @Delegate @Lazy SeleniumCallHandler seleniumcallhandler =
this.binding.seleniumcallhandler

}



loadGroovyPage.groovy:

TestBehavior('test google home page' , {

    loAd "http://www.google.com"

    driver.findElement(By.id("lst-ib")).sendKeys("Selenium!")

})



the TestBehavior method is defined in SeleniumCallHandler. Like:



    def TestBehavior(def name,Closure cls)

    {

        cls.delegate = this;

        cls();

    }



The above code in loadGroovypage works fine. But to make my DSL good, I
tried this:



TestBehavior 'test google home page' , {

    loAd "http://www.google.com"

    driver.findElement(By.id("lst-ib")).sendKeys("Selenium!")

}



(same code without param's) And this code fails with message:



Error:(1, 13) Groovyc: unexpected token: test google home page on
loadGroovyPage.groovy.



Where I'm making the mistake? Does the method call without params should
work without any issues right?

Thanks,
Anto.

Mime
View raw message