[arquillian-issues] [JBoss JIRA] (ARQGRA-446) Add support for Groovy page objects
Lukáš Fryč (JIRA)
issues at jboss.org
Wed Jul 30 05:02:29 EDT 2014
[ https://issues.jboss.org/browse/ARQGRA-446?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lukáš Fryč updated ARQGRA-446:
------------------------------
Status: Resolved (was: Pull Request Sent)
Resolution: Done
> Add support for Groovy page objects
> -----------------------------------
>
> Key: ARQGRA-446
> URL: https://issues.jboss.org/browse/ARQGRA-446
> Project: Arquillian Graphene
> Issue Type: Enhancement
> Security Level: Public(Everyone can see)
> Components: configuration, core
> Affects Versions: 2.0.2.Final
> Reporter: Chris Jones
> Assignee: Chris Jones
> Fix For: 2.1.0.Alpha1
>
> Attachments: graphene-groovy-test.zip, groovy-page-support (fixed paths).patch, groovy-page-support.patch
>
>
> Page objects written in groovy throw a StackOverflowError. There seems to be a recursive issue when proxying groovy's metaclass property.
> {code:title=GoogleGroovy.groovy|borderStyle=solid}
> package test
> import org.jboss.arquillian.graphene.page.Location
> import org.openqa.selenium.WebElement
> import org.openqa.selenium.support.FindBy
> @Location("https://www.google.com/")
> public class GoogleGroovy {
> @FindBy
> WebElement q
> def search(String query){
> q.sendKeys(query)
> sleep(5000)
> }
> }
> {code}
> {code:title=GoogleJava.java|borderStyle=solid}
> package test;
> import org.jboss.arquillian.graphene.page.Location;
> import org.openqa.selenium.WebElement;
> import org.openqa.selenium.support.FindBy;
> @Location("https://www.google.com/")
> public class GoogleJava {
> @FindBy
> WebElement q;
> public void search(String query) throws Exception {
> q.sendKeys(query);
> Thread.sleep(5000);
> }
> }
> {code}
> {code:title=GoogleTestCase.groovy|borderStyle=solid}
> package test
> import org.jboss.arquillian.drone.api.annotation.Drone
> import org.jboss.arquillian.graphene.Graphene
> import org.jboss.arquillian.junit.Arquillian
> import org.junit.Test
> import org.junit.runner.RunWith
> import org.openqa.selenium.firefox.FirefoxDriver
> @RunWith(Arquillian.class)
> class GoogleTestCase {
> @Drone
> FirefoxDriver driver
> @Test
> def void testUsingJava(){
> def googleJava = Graphene.goTo(GoogleJava)
> googleJava.search("hello world")
> }
> @Test
> def void testUsingGroovy(){
> def googleGroovy = Graphene.goTo(GoogleGroovy)
> googleGroovy.search("jello world")
> }
> }
> {code}
> {code:title=Stacktrace|borderStyle=solid}
> Jun 01, 2014 12:47:08 AM org.jboss.arquillian.graphene.enricher.FieldAccessValidatorEnricher checkFieldValidity
> WARNING: Public field '__$stMC' found in test.GoogleTestCase. Direct access to fields outside of the declaring class is not allowed.
> Jun 01, 2014 12:47:08 AM org.jboss.arquillian.graphene.enricher.FieldAccessValidatorEnricher checkFieldValidity
> WARNING: Public field '__timeStamp' found in test.GoogleTestCase. Direct access to fields outside of the declaring class is not allowed.
> Jun 01, 2014 12:47:08 AM org.jboss.arquillian.graphene.enricher.FieldAccessValidatorEnricher checkFieldValidity
> WARNING: Public field '__timeStamp__239_neverHappen1401597979243' found in test.GoogleTestCase. Direct access to fields outside of the declaring class is not allowed.
> Jun 01, 2014 12:47:12 AM org.jboss.arquillian.graphene.enricher.FieldAccessValidatorEnricher checkFieldValidity
> WARNING: Public field '__$stMC' found in test.GoogleGroovy. Direct access to fields outside of the declaring class is not allowed.
> Jun 01, 2014 12:47:12 AM org.jboss.arquillian.graphene.enricher.FieldAccessValidatorEnricher checkFieldValidity
> WARNING: Package-friendly field '__$stMC' found in test.GoogleGroovy. Direct access to fields outside of the declaring class is not allowed.
> Jun 01, 2014 12:47:12 AM org.jboss.arquillian.graphene.enricher.FieldAccessValidatorEnricher checkFieldValidity
> WARNING: Public field '__timeStamp' found in test.GoogleGroovy. Direct access to fields outside of the declaring class is not allowed.
> Jun 01, 2014 12:47:12 AM org.jboss.arquillian.graphene.enricher.FieldAccessValidatorEnricher checkFieldValidity
> WARNING: Package-friendly field '__timeStamp' found in test.GoogleGroovy. Direct access to fields outside of the declaring class is not allowed.
> Jun 01, 2014 12:47:12 AM org.jboss.arquillian.graphene.enricher.FieldAccessValidatorEnricher checkFieldValidity
> WARNING: Public field '__timeStamp__239_neverHappen1401597978002' found in test.GoogleGroovy. Direct access to fields outside of the declaring class is not allowed.
> Jun 01, 2014 12:47:12 AM org.jboss.arquillian.graphene.enricher.FieldAccessValidatorEnricher checkFieldValidity
> WARNING: Package-friendly field '__timeStamp__239_neverHappen1401597978002' found in test.GoogleGroovy. Direct access to fields outside of the declaring class is not allowed.
> Jun 01, 2014 12:47:12 AM org.jboss.arquillian.graphene.enricher.FieldAccessValidatorEnricher checkFieldValidity
> WARNING: Public field '__$stMC' found in test.GoogleGroovy$$EnhancerByGraphene$$2eb2d5f8. Direct access to fields outside of the declaring class is not allowed.
> Jun 01, 2014 12:47:12 AM org.jboss.arquillian.graphene.enricher.FieldAccessValidatorEnricher checkFieldValidity
> WARNING: Package-friendly field '__$stMC' found in test.GoogleGroovy$$EnhancerByGraphene$$2eb2d5f8. Direct access to fields outside of the declaring class is not allowed.
> Jun 01, 2014 12:47:12 AM org.jboss.arquillian.graphene.enricher.FieldAccessValidatorEnricher checkFieldValidity
> WARNING: Public field '__timeStamp' found in test.GoogleGroovy$$EnhancerByGraphene$$2eb2d5f8. Direct access to fields outside of the declaring class is not allowed.
> Jun 01, 2014 12:47:12 AM org.jboss.arquillian.graphene.enricher.FieldAccessValidatorEnricher checkFieldValidity
> WARNING: Package-friendly field '__timeStamp' found in test.GoogleGroovy$$EnhancerByGraphene$$2eb2d5f8. Direct access to fields outside of the declaring class is not allowed.
> Jun 01, 2014 12:47:12 AM org.jboss.arquillian.graphene.enricher.FieldAccessValidatorEnricher checkFieldValidity
> WARNING: Public field '__timeStamp__239_neverHappen1401597978002' found in test.GoogleGroovy$$EnhancerByGraphene$$2eb2d5f8. Direct access to fields outside of the declaring class is not allowed.
> Jun 01, 2014 12:47:12 AM org.jboss.arquillian.graphene.enricher.FieldAccessValidatorEnricher checkFieldValidity
> WARNING: Package-friendly field '__timeStamp__239_neverHappen1401597978002' found in test.GoogleGroovy$$EnhancerByGraphene$$2eb2d5f8. Direct access to fields outside of the declaring class is not allowed.
> java.lang.StackOverflowError
> at org.jboss.arquillian.graphene.proxy.GrapheneContextualHandler.invoke(GrapheneContextualHandler.java:205)
> at org.jboss.arquillian.graphene.proxy.GrapheneContextualHandler.intercept(GrapheneContextualHandler.java:229)
> at test.GoogleGroovy$$EnhancerByGraphene$$2eb2d5f8.getMetaClass(<generated>)
> at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.checkCall(PogoMetaClassSite.java:59)
> at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:36)
> at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
> at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:54)
> at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
> at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:54)
> at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
> at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:54)
> at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
> .....
> {code}
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
More information about the arquillian-issues
mailing list