{"id":2522,"date":"2011-01-13T18:21:09","date_gmt":"2011-01-13T12:51:09","guid":{"rendered":"https:\/\/2thenew.xyz\/blog\/?p=2522"},"modified":"2011-01-14T10:47:30","modified_gmt":"2011-01-14T05:17:30","slug":"pagechangelistener-for-debugging-in-functional-testing-using-geb","status":"publish","type":"post","link":"https:\/\/2thenew.xyz\/blog\/pagechangelistener-for-debugging-in-functional-testing-using-geb\/","title":{"rendered":"PageChangeListener for debugging in  functional testing using Geb"},"content":{"rendered":"<p>While using Geb for fuctional testing i require some deugging support so i use PageChangeListener and i found it very useful to find flow of pages while testing my application fuctionally.What it does is it will show the page flow from one page to another.For that we need to  just register the PageChangeListener with browser in your  Spock Test.<\/p>\n<p>PageChangeListener will look like this:-<\/p>\n<p>[java]<br \/>\nclass EchoingPageChangeListener implements PageChangeListener {<br \/>\nvoid pageWillChange(Browser browser, Page oldPage, Page newPage) {<br \/>\nprintln &quot;browser &#8216;$browser&#8217; changing page from &#8216;$oldPage&#8217; to &#8216;$newPage&#8217;&quot;<br \/>\n}<br \/>\n}<br \/>\n[\/java]<\/p>\n<p>The SpockTest will be having the following code:-<\/p>\n<p>[java]<br \/>\nclass TestSpec extends GebSpec{<br \/>\ndef setupSpec() {<br \/>\n\/\/a kind of init method for our SpockTest<br \/>\nBrowser.drive {<br \/>\ndef listener = new EchoingPageChangeListener()<br \/>\n\/\/this register the browser with PageChangeListener<br \/>\nbrowser.registerPageChangeListener(listener)}<br \/>\n}<br \/>\ndef &quot;login test&quot;(){<br \/>\ngiven:<br \/>\nto(GmailLoginPage)<br \/>\nassert at(GmailLoginPage)<br \/>\nloginModule.loginAs(&quot;username@gmail.com&quot;,&quot;password&quot;)<br \/>\nwhen:<br \/>\nassert at(GmailLoginPage)<br \/>\nthen:<br \/>\nprintln &quot;invalid username or password&quot;<\/p>\n<p>}<br \/>\n}<br \/>\n[\/java]<\/p>\n<p>Hope this help you guys!<br \/>\nThanks and Regards,<br \/>\n<strong>Anuj Aneja<br \/>\nanuj@intelligrape.com<\/strong><\/p>\n<p><strong>http:\/\/intelligrape.com\/<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>While using Geb for fuctional testing i require some deugging support so i use PageChangeListener and i found it very useful to find flow of pages while testing my application fuctionally.What it does is it will show the page flow from one page to another.For that we need to just register the PageChangeListener with browser [&hellip;]<\/p>\n","protected":false},"author":27,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":4,"footnotes":""},"categories":[7],"tags":[4840,490],"class_list":["post-2522","post","type-post","status-publish","format-standard","hentry","category-grails","tag-grails","tag-spock"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"While using Geb for fuctional testing i require some deugging support so i use PageChangeListener and i found it very useful to find flow of pages while testing my application fuctionally.What it does is it will show the page flow from one page to another.For that we need to just register the PageChangeListener with browser\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Anuj Aneja\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/2thenew.xyz\/blog\/pagechangelistener-for-debugging-in-functional-testing-using-geb\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"TO THE NEW BLOG\" \/>\n\t\t<meta property=\"og:type\" content=\"blog\" \/>\n\t\t<meta property=\"og:title\" content=\"PageChangeListener for debugging in functional testing using Geb | TO THE NEW Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"While using Geb for fuctional testing i require some deugging support so i use PageChangeListener and i found it very useful to find flow of pages while testing my application fuctionally.What it does is it will show the page flow from one page to another.For that we need to just register the PageChangeListener with browser\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/2thenew.xyz\/blog\/pagechangelistener-for-debugging-in-functional-testing-using-geb\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@tothenew\" \/>\n\t\t<meta name=\"twitter:title\" content=\"PageChangeListener for debugging in functional testing using Geb | TO THE NEW Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"While using Geb for fuctional testing i require some deugging support so i use PageChangeListener and i found it very useful to find flow of pages while testing my application fuctionally.What it does is it will show the page flow from one page to another.For that we need to just register the PageChangeListener with browser\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/pagechangelistener-for-debugging-in-functional-testing-using-geb\\\/#article\",\"name\":\"PageChangeListener for debugging in functional testing using Geb | TO THE NEW Blog\",\"headline\":\"PageChangeListener for debugging in  functional testing using Geb\",\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/anuj\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"},\"datePublished\":\"2011-01-13T18:21:09+05:30\",\"dateModified\":\"2011-01-14T10:47:30+05:30\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/pagechangelistener-for-debugging-in-functional-testing-using-geb\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/pagechangelistener-for-debugging-in-functional-testing-using-geb\\\/#webpage\"},\"articleSection\":\"Grails, Grails, spock\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/pagechangelistener-for-debugging-in-functional-testing-using-geb\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"name\":\"Grails\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"position\":2,\"name\":\"Grails\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/pagechangelistener-for-debugging-in-functional-testing-using-geb\\\/#listItem\",\"name\":\"PageChangeListener for debugging in  functional testing using Geb\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/pagechangelistener-for-debugging-in-functional-testing-using-geb\\\/#listItem\",\"position\":3,\"name\":\"PageChangeListener for debugging in  functional testing using Geb\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"name\":\"Grails\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\",\"name\":\"TO THE NEW Blog\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/anuj\\\/#author\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/anuj\\\/\",\"name\":\"Anuj Aneja\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/pagechangelistener-for-debugging-in-functional-testing-using-geb\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/26506d32d9a4d14f9fa04eedd76468df74b43724e0014df4900dadc5f9cd2ff7?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Anuj Aneja\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/pagechangelistener-for-debugging-in-functional-testing-using-geb\\\/#webpage\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/pagechangelistener-for-debugging-in-functional-testing-using-geb\\\/\",\"name\":\"PageChangeListener for debugging in functional testing using Geb | TO THE NEW Blog\",\"description\":\"While using Geb for fuctional testing i require some deugging support so i use PageChangeListener and i found it very useful to find flow of pages while testing my application fuctionally.What it does is it will show the page flow from one page to another.For that we need to just register the PageChangeListener with browser\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/pagechangelistener-for-debugging-in-functional-testing-using-geb\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/anuj\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/anuj\\\/#author\"},\"datePublished\":\"2011-01-13T18:21:09+05:30\",\"dateModified\":\"2011-01-14T10:47:30+05:30\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\",\"name\":\"TO THE NEW Blog\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"PageChangeListener for debugging in functional testing using Geb | TO THE NEW Blog","description":"While using Geb for fuctional testing i require some deugging support so i use PageChangeListener and i found it very useful to find flow of pages while testing my application fuctionally.What it does is it will show the page flow from one page to another.For that we need to just register the PageChangeListener with browser","canonical_url":"https:\/\/2thenew.xyz\/blog\/pagechangelistener-for-debugging-in-functional-testing-using-geb\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/2thenew.xyz\/blog\/pagechangelistener-for-debugging-in-functional-testing-using-geb\/#article","name":"PageChangeListener for debugging in functional testing using Geb | TO THE NEW Blog","headline":"PageChangeListener for debugging in  functional testing using Geb","author":{"@id":"https:\/\/2thenew.xyz\/blog\/author\/anuj\/#author"},"publisher":{"@id":"https:\/\/2thenew.xyz\/blog\/#organization"},"datePublished":"2011-01-13T18:21:09+05:30","dateModified":"2011-01-14T10:47:30+05:30","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/2thenew.xyz\/blog\/pagechangelistener-for-debugging-in-functional-testing-using-geb\/#webpage"},"isPartOf":{"@id":"https:\/\/2thenew.xyz\/blog\/pagechangelistener-for-debugging-in-functional-testing-using-geb\/#webpage"},"articleSection":"Grails, Grails, spock"},{"@type":"BreadcrumbList","@id":"https:\/\/2thenew.xyz\/blog\/pagechangelistener-for-debugging-in-functional-testing-using-geb\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog#listItem","position":1,"name":"Home","item":"https:\/\/2thenew.xyz\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog\/category\/grails\/#listItem","name":"Grails"}},{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog\/category\/grails\/#listItem","position":2,"name":"Grails","item":"https:\/\/2thenew.xyz\/blog\/category\/grails\/","nextItem":{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog\/pagechangelistener-for-debugging-in-functional-testing-using-geb\/#listItem","name":"PageChangeListener for debugging in  functional testing using Geb"},"previousItem":{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog\/pagechangelistener-for-debugging-in-functional-testing-using-geb\/#listItem","position":3,"name":"PageChangeListener for debugging in  functional testing using Geb","previousItem":{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog\/category\/grails\/#listItem","name":"Grails"}}]},{"@type":"Organization","@id":"https:\/\/2thenew.xyz\/blog\/#organization","name":"TO THE NEW Blog","url":"https:\/\/2thenew.xyz\/blog\/"},{"@type":"Person","@id":"https:\/\/2thenew.xyz\/blog\/author\/anuj\/#author","url":"https:\/\/2thenew.xyz\/blog\/author\/anuj\/","name":"Anuj Aneja","image":{"@type":"ImageObject","@id":"https:\/\/2thenew.xyz\/blog\/pagechangelistener-for-debugging-in-functional-testing-using-geb\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/26506d32d9a4d14f9fa04eedd76468df74b43724e0014df4900dadc5f9cd2ff7?s=96&d=mm&r=g","width":96,"height":96,"caption":"Anuj Aneja"}},{"@type":"WebPage","@id":"https:\/\/2thenew.xyz\/blog\/pagechangelistener-for-debugging-in-functional-testing-using-geb\/#webpage","url":"https:\/\/2thenew.xyz\/blog\/pagechangelistener-for-debugging-in-functional-testing-using-geb\/","name":"PageChangeListener for debugging in functional testing using Geb | TO THE NEW Blog","description":"While using Geb for fuctional testing i require some deugging support so i use PageChangeListener and i found it very useful to find flow of pages while testing my application fuctionally.What it does is it will show the page flow from one page to another.For that we need to just register the PageChangeListener with browser","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/2thenew.xyz\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/2thenew.xyz\/blog\/pagechangelistener-for-debugging-in-functional-testing-using-geb\/#breadcrumblist"},"author":{"@id":"https:\/\/2thenew.xyz\/blog\/author\/anuj\/#author"},"creator":{"@id":"https:\/\/2thenew.xyz\/blog\/author\/anuj\/#author"},"datePublished":"2011-01-13T18:21:09+05:30","dateModified":"2011-01-14T10:47:30+05:30"},{"@type":"WebSite","@id":"https:\/\/2thenew.xyz\/blog\/#website","url":"https:\/\/2thenew.xyz\/blog\/","name":"TO THE NEW Blog","inLanguage":"en-US","publisher":{"@id":"https:\/\/2thenew.xyz\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"TO THE NEW BLOG","og:type":"blog","og:title":"PageChangeListener for debugging in functional testing using Geb | TO THE NEW Blog","og:description":"While using Geb for fuctional testing i require some deugging support so i use PageChangeListener and i found it very useful to find flow of pages while testing my application fuctionally.What it does is it will show the page flow from one page to another.For that we need to just register the PageChangeListener with browser","og:url":"https:\/\/2thenew.xyz\/blog\/pagechangelistener-for-debugging-in-functional-testing-using-geb\/","og:image":"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","og:image:secure_url":"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","twitter:card":"summary","twitter:site":"@tothenew","twitter:title":"PageChangeListener for debugging in functional testing using Geb | TO THE NEW Blog","twitter:description":"While using Geb for fuctional testing i require some deugging support so i use PageChangeListener and i found it very useful to find flow of pages while testing my application fuctionally.What it does is it will show the page flow from one page to another.For that we need to just register the PageChangeListener with browser","twitter:image":"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png"},"aioseo_meta_data":{"post_id":"2522","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2021-04-30 08:15:01","updated":"2024-02-29 10:59:26","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/2thenew.xyz\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/2thenew.xyz\/blog\/category\/grails\/\" title=\"Grails\">Grails<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tPageChangeListener for debugging in  functional testing using Geb\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/2thenew.xyz\/blog"},{"label":"Grails","link":"https:\/\/2thenew.xyz\/blog\/category\/grails\/"},{"label":"PageChangeListener for debugging in  functional testing using Geb","link":"https:\/\/2thenew.xyz\/blog\/pagechangelistener-for-debugging-in-functional-testing-using-geb\/"}],"_links":{"self":[{"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/posts\/2522","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/comments?post=2522"}],"version-history":[{"count":0,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/posts\/2522\/revisions"}],"wp:attachment":[{"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/media?parent=2522"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/categories?post=2522"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/tags?post=2522"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}