SlideShare a Scribd company logo
1 of 13
Download to read offline
GEF Support in SWTBot

  Use a bot to test your GEF and GMF based applications



            Mariot Chauvin -   mariot.chauvin@obeo.fr
            Obeo (France)




                                                          1
GEF Support in SWTBot
                                                                Use a bot to test your GEF and GMF based applications




SWTBot presentation
   Tool for UI and functional testing

   Usable for SWT and Eclipse based applications

   Consistent API
        Wrappers for each SWT widget
        Finders to retrieve contributions based on conditions
        Matchers to write conditions in a expressive way




             © Copyright 2009 Obeo. made available under the EPL v1.0 | Oct. 25th, 2009
GEF Support in SWTBot
                                                                   Use a bot to test your GEF and GMF based applications




SWTBot test example
@Test
public void canCreateANewJavaProject() throws Exception {
    bot.menu("File").menu("New").menu("Project...").click();
    SWTBotShell shell = bot.shell("New Project");
    shell.activate();


    bot.tree().select("Java Project");
    bot.button("Next >").click();
    bot.textWithLabel("Project name:").setText("MyFirstProject");
    bot.button("Finish").click();
}




                © Copyright 2009 Obeo. made available under the EPL v1.0 | Oct. 25th, 2009
GEF Support in SWTBot
                                                                 Use a bot to test your GEF and GMF based applications




GEF presentation
   Framework for graphical editors with an MVC architecture

   Lightweight layout and rendering 2D toolkit

   MVC architecture agnostic of model representation
        EditParts play the role of controller
        Figures are the view instances
        EditPolicies encapsulate the behavior




              © Copyright 2009 Obeo. made available under the EPL v1.0 | Oct. 25th, 2009
GEF Support in SWTBot
                                                          Use a bot to test your GEF and GMF based applications




GEF based application example




       © Copyright 2009 Obeo. made available under the EPL v1.0 | Oct. 25th, 2009
GEF Support in SWTBot
                                                                Use a bot to test your GEF and GMF based applications




GEF based applications testability
    Delivering a product meaning ensure general good works and
    end user features non regressions between releases. How to
    achieve that ?

   Manual tests
        Time and resource consuming
        Error prone

   Automatic tests
        Difficult to instantiate editPart and simulate user actions
        Need to poll UISynchronizer to execute asynchronous runnables

                Why do not extend SWTBot to support GEF ?


             © Copyright 2009 Obeo. made available under the EPL v1.0 | Oct. 25th, 2009
GEF Support in SWTBot
                                                         Use a bot to test your GEF and GMF based applications




Quick demo




      © Copyright 2009 Obeo. made available under the EPL v1.0 | Oct. 25th, 2009
GEF Support in SWTBot
                                                                Use a bot to test your GEF and GMF based applications




Available API
   Create a node element
        editor.activateTool(String name)
         editor.mouseMoveLeftClick(int x, int y)

   Create an edge element
         editor.activateTool(String name)
         editor.mouseMoveLeftClick(String editPartName)
         editor.mouseMoveLeftClick(String editPartName)




             © Copyright 2009 Obeo. made available under the EPL v1.0 | Oct. 25th, 2009
GEF Support in SWTBot
                                                                  Use a bot to test your GEF and GMF based applications




Available API
   Drag an element
        editor.mouseDrag(String label, int x, int y)

   Double-click on an element
        editor.mouseMoveDoubleClick(int x, int y)

   Direct edit on a element
        editor.mouseMoveLeftClick(String label)
        UIThreadRunnable.syncExec(new VoidResult() {
               public void run() {
                   part.performRequest(request);
               }
        });
        editor.directEditType(String text)



               © Copyright 2009 Obeo. made available under the EPL v1.0 | Oct. 25th, 2009
GEF Support in SWTBot
                                                          Use a bot to test your GEF and GMF based applications




GMF based application demo




       © Copyright 2009 Obeo. made available under the EPL v1.0 | Oct. 25th, 2009
GEF Support in SWTBot
                                                                Use a bot to test your GEF and GMF based applications




Could I use it to do more ?
   Generate UI and its tests with acceleo
        EEF is doing such a thing with SWT and JFace
        One could extend GMF generation to do the same

   Maintains documentation and tutorials up to date
        Write a SWTBot test for each tutorial
        Take a screenshot between each step




             © Copyright 2009 Obeo. made available under the EPL v1.0 | Oct. 25th, 2009
GEF Support in SWTBot
                                                                Use a bot to test your GEF and GMF based applications




Project status and early adoption
   Project status
        First committed on a google code project
        Contributed since to SWTBot
        A new feature will be soon available on update site
        API will be redesign to use more matchers
        API will be enhanced (delete, zoom, modeling assistant)

   Early adoption
        Checkout the code from SWTBot repository
        Open bugs and feature requests
        API is provisional !




             © Copyright 2009 Obeo. made available under the EPL v1.0 | Oct. 25th, 2009
GEF Support in SWTBot
                                                                  Use a bot to test your GEF and GMF based applications




       Thanks for your attention !




 Further information :                                                              mariot.chauvin@obeo.fr

     http://www.obeo.fr
     http://www.eclipse.org/swtbot
     http://wiki.eclipse.org/SWTBot



               © Copyright 2009 Obeo. made available under the EPL v1.0 | Oct. 25th, 2009

More Related Content

Similar to Test GEF Apps with SWTBot

Application Quality with Visual Studio 2010
Application Quality with Visual Studio 2010Application Quality with Visual Studio 2010
Application Quality with Visual Studio 2010Anna Russo
 
UFT- New features and comparison with QTP
UFT- New features and comparison with QTPUFT- New features and comparison with QTP
UFT- New features and comparison with QTPRita Singh
 
Functional Testing made easy with SWTBot for Developers and Testers
Functional Testing made easy with SWTBot for Developers and TestersFunctional Testing made easy with SWTBot for Developers and Testers
Functional Testing made easy with SWTBot for Developers and TestersAurélien Pupier
 
What's New with Perfecto? - Mid-Year Edition
What's New with Perfecto? - Mid-Year EditionWhat's New with Perfecto? - Mid-Year Edition
What's New with Perfecto? - Mid-Year EditionLizzy Guido (she/her)
 
Extending the Enterprise with MEF
Extending the Enterprise with MEFExtending the Enterprise with MEF
Extending the Enterprise with MEFBrian Ritchie
 
Flutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - textFlutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - textToma Velev
 
Ui Modeling In Action With PMF, e4(XWT) And EGF
Ui Modeling In Action With PMF, e4(XWT) And EGFUi Modeling In Action With PMF, e4(XWT) And EGF
Ui Modeling In Action With PMF, e4(XWT) And EGFBENOIT_LANGLOIS
 
[EclipseCon NA 2014] Integration tests for RCP made easy with SWTBot and Tycho
[EclipseCon NA 2014] Integration tests for RCP made easy with SWTBot and Tycho[EclipseCon NA 2014] Integration tests for RCP made easy with SWTBot and Tycho
[EclipseCon NA 2014] Integration tests for RCP made easy with SWTBot and TychoMickael Istria
 
XCUITest for iOS App Testing and how to test with Xcode
XCUITest for iOS App Testing and how to test with XcodeXCUITest for iOS App Testing and how to test with Xcode
XCUITest for iOS App Testing and how to test with XcodepCloudy
 
What's New with Perfecto? - May 2017
What's New with Perfecto? - May 2017What's New with Perfecto? - May 2017
What's New with Perfecto? - May 2017Lizzy Guido (she/her)
 
HTML5 based PivotViewer for Visualizing LInked Data
HTML5 based PivotViewer for Visualizing LInked Data HTML5 based PivotViewer for Visualizing LInked Data
HTML5 based PivotViewer for Visualizing LInked Data Kingsley Uyi Idehen
 
Appium tips & Inneractive integration
Appium tips & Inneractive integrationAppium tips & Inneractive integration
Appium tips & Inneractive integrationGil Sheps
 
Flutter technology Based on Web Development
Flutter technology Based on Web Development Flutter technology Based on Web Development
Flutter technology Based on Web Development divyawani2
 
YuryMakedonov_GUI_TestAutomation_QAI_Canada_2007_14h
YuryMakedonov_GUI_TestAutomation_QAI_Canada_2007_14hYuryMakedonov_GUI_TestAutomation_QAI_Canada_2007_14h
YuryMakedonov_GUI_TestAutomation_QAI_Canada_2007_14hYury M
 
Managed Extensibility Framework (MEF)
Managed Extensibility Framework (MEF)Managed Extensibility Framework (MEF)
Managed Extensibility Framework (MEF)Mohamed Meligy
 
Mastering DevOps-Driven Data Integration with FME
Mastering DevOps-Driven Data Integration with FMEMastering DevOps-Driven Data Integration with FME
Mastering DevOps-Driven Data Integration with FMESafe Software
 

Similar to Test GEF Apps with SWTBot (20)

Application Quality with Visual Studio 2010
Application Quality with Visual Studio 2010Application Quality with Visual Studio 2010
Application Quality with Visual Studio 2010
 
UFT- New features and comparison with QTP
UFT- New features and comparison with QTPUFT- New features and comparison with QTP
UFT- New features and comparison with QTP
 
Functional Testing made easy with SWTBot for Developers and Testers
Functional Testing made easy with SWTBot for Developers and TestersFunctional Testing made easy with SWTBot for Developers and Testers
Functional Testing made easy with SWTBot for Developers and Testers
 
What's New with Perfecto? - Mid-Year Edition
What's New with Perfecto? - Mid-Year EditionWhat's New with Perfecto? - Mid-Year Edition
What's New with Perfecto? - Mid-Year Edition
 
Extending the Enterprise with MEF
Extending the Enterprise with MEFExtending the Enterprise with MEF
Extending the Enterprise with MEF
 
Swt qt ese2010
Swt qt ese2010Swt qt ese2010
Swt qt ese2010
 
Flutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - textFlutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - text
 
Ui Modeling In Action With PMF, e4(XWT) And EGF
Ui Modeling In Action With PMF, e4(XWT) And EGFUi Modeling In Action With PMF, e4(XWT) And EGF
Ui Modeling In Action With PMF, e4(XWT) And EGF
 
[EclipseCon NA 2014] Integration tests for RCP made easy with SWTBot and Tycho
[EclipseCon NA 2014] Integration tests for RCP made easy with SWTBot and Tycho[EclipseCon NA 2014] Integration tests for RCP made easy with SWTBot and Tycho
[EclipseCon NA 2014] Integration tests for RCP made easy with SWTBot and Tycho
 
XCUITest for iOS App Testing and how to test with Xcode
XCUITest for iOS App Testing and how to test with XcodeXCUITest for iOS App Testing and how to test with Xcode
XCUITest for iOS App Testing and how to test with Xcode
 
What's New with Perfecto? - May 2017
What's New with Perfecto? - May 2017What's New with Perfecto? - May 2017
What's New with Perfecto? - May 2017
 
Rajiv Profile
Rajiv ProfileRajiv Profile
Rajiv Profile
 
Mobile Application Development class 001
Mobile Application Development class 001Mobile Application Development class 001
Mobile Application Development class 001
 
HTML5 based PivotViewer for Visualizing LInked Data
HTML5 based PivotViewer for Visualizing LInked Data HTML5 based PivotViewer for Visualizing LInked Data
HTML5 based PivotViewer for Visualizing LInked Data
 
Appium tips & Inneractive integration
Appium tips & Inneractive integrationAppium tips & Inneractive integration
Appium tips & Inneractive integration
 
Flutter technology Based on Web Development
Flutter technology Based on Web Development Flutter technology Based on Web Development
Flutter technology Based on Web Development
 
WindowTester PRO
WindowTester PROWindowTester PRO
WindowTester PRO
 
YuryMakedonov_GUI_TestAutomation_QAI_Canada_2007_14h
YuryMakedonov_GUI_TestAutomation_QAI_Canada_2007_14hYuryMakedonov_GUI_TestAutomation_QAI_Canada_2007_14h
YuryMakedonov_GUI_TestAutomation_QAI_Canada_2007_14h
 
Managed Extensibility Framework (MEF)
Managed Extensibility Framework (MEF)Managed Extensibility Framework (MEF)
Managed Extensibility Framework (MEF)
 
Mastering DevOps-Driven Data Integration with FME
Mastering DevOps-Driven Data Integration with FMEMastering DevOps-Driven Data Integration with FME
Mastering DevOps-Driven Data Integration with FME
 

Recently uploaded

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 

Recently uploaded (20)

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 

Test GEF Apps with SWTBot

  • 1. GEF Support in SWTBot Use a bot to test your GEF and GMF based applications Mariot Chauvin - mariot.chauvin@obeo.fr Obeo (France) 1
  • 2. GEF Support in SWTBot Use a bot to test your GEF and GMF based applications SWTBot presentation  Tool for UI and functional testing  Usable for SWT and Eclipse based applications  Consistent API  Wrappers for each SWT widget  Finders to retrieve contributions based on conditions  Matchers to write conditions in a expressive way © Copyright 2009 Obeo. made available under the EPL v1.0 | Oct. 25th, 2009
  • 3. GEF Support in SWTBot Use a bot to test your GEF and GMF based applications SWTBot test example @Test public void canCreateANewJavaProject() throws Exception { bot.menu("File").menu("New").menu("Project...").click(); SWTBotShell shell = bot.shell("New Project"); shell.activate(); bot.tree().select("Java Project"); bot.button("Next >").click(); bot.textWithLabel("Project name:").setText("MyFirstProject"); bot.button("Finish").click(); } © Copyright 2009 Obeo. made available under the EPL v1.0 | Oct. 25th, 2009
  • 4. GEF Support in SWTBot Use a bot to test your GEF and GMF based applications GEF presentation  Framework for graphical editors with an MVC architecture  Lightweight layout and rendering 2D toolkit  MVC architecture agnostic of model representation  EditParts play the role of controller  Figures are the view instances  EditPolicies encapsulate the behavior © Copyright 2009 Obeo. made available under the EPL v1.0 | Oct. 25th, 2009
  • 5. GEF Support in SWTBot Use a bot to test your GEF and GMF based applications GEF based application example © Copyright 2009 Obeo. made available under the EPL v1.0 | Oct. 25th, 2009
  • 6. GEF Support in SWTBot Use a bot to test your GEF and GMF based applications GEF based applications testability Delivering a product meaning ensure general good works and end user features non regressions between releases. How to achieve that ?  Manual tests  Time and resource consuming  Error prone  Automatic tests  Difficult to instantiate editPart and simulate user actions  Need to poll UISynchronizer to execute asynchronous runnables Why do not extend SWTBot to support GEF ? © Copyright 2009 Obeo. made available under the EPL v1.0 | Oct. 25th, 2009
  • 7. GEF Support in SWTBot Use a bot to test your GEF and GMF based applications Quick demo © Copyright 2009 Obeo. made available under the EPL v1.0 | Oct. 25th, 2009
  • 8. GEF Support in SWTBot Use a bot to test your GEF and GMF based applications Available API  Create a node element  editor.activateTool(String name) editor.mouseMoveLeftClick(int x, int y)  Create an edge element editor.activateTool(String name) editor.mouseMoveLeftClick(String editPartName) editor.mouseMoveLeftClick(String editPartName) © Copyright 2009 Obeo. made available under the EPL v1.0 | Oct. 25th, 2009
  • 9. GEF Support in SWTBot Use a bot to test your GEF and GMF based applications Available API  Drag an element editor.mouseDrag(String label, int x, int y)  Double-click on an element editor.mouseMoveDoubleClick(int x, int y)  Direct edit on a element editor.mouseMoveLeftClick(String label) UIThreadRunnable.syncExec(new VoidResult() { public void run() { part.performRequest(request); } }); editor.directEditType(String text) © Copyright 2009 Obeo. made available under the EPL v1.0 | Oct. 25th, 2009
  • 10. GEF Support in SWTBot Use a bot to test your GEF and GMF based applications GMF based application demo © Copyright 2009 Obeo. made available under the EPL v1.0 | Oct. 25th, 2009
  • 11. GEF Support in SWTBot Use a bot to test your GEF and GMF based applications Could I use it to do more ?  Generate UI and its tests with acceleo  EEF is doing such a thing with SWT and JFace  One could extend GMF generation to do the same  Maintains documentation and tutorials up to date  Write a SWTBot test for each tutorial  Take a screenshot between each step © Copyright 2009 Obeo. made available under the EPL v1.0 | Oct. 25th, 2009
  • 12. GEF Support in SWTBot Use a bot to test your GEF and GMF based applications Project status and early adoption  Project status  First committed on a google code project  Contributed since to SWTBot  A new feature will be soon available on update site  API will be redesign to use more matchers  API will be enhanced (delete, zoom, modeling assistant)  Early adoption  Checkout the code from SWTBot repository  Open bugs and feature requests  API is provisional ! © Copyright 2009 Obeo. made available under the EPL v1.0 | Oct. 25th, 2009
  • 13. GEF Support in SWTBot Use a bot to test your GEF and GMF based applications Thanks for your attention !  Further information : mariot.chauvin@obeo.fr  http://www.obeo.fr  http://www.eclipse.org/swtbot  http://wiki.eclipse.org/SWTBot © Copyright 2009 Obeo. made available under the EPL v1.0 | Oct. 25th, 2009