Merge pull request #73 from NoelDeMartin/MOBILE-3153
MOBILE-3153 behat: Test User Tours
This commit is contained in:
		
						commit
						0393487899
					
				| @ -415,9 +415,12 @@ | ||||
|             case 'popover': | ||||
|                 containers = document.querySelectorAll('ion-app ion-popover.hydrated'); | ||||
|                 break; | ||||
|             case 'user-tour': | ||||
|                 containers = document.querySelectorAll('core-user-tours-user-tour.is-active'); | ||||
|                 break; | ||||
|             default: | ||||
|                 // Other containerName or not implemented.
 | ||||
|                 const containerSelector = 'ion-alert, ion-popover, ion-action-sheet, ion-modal, page-core-mainmenu, ion-app'; | ||||
|                 const containerSelector = 'ion-alert, ion-popover, ion-action-sheet, ion-modal, core-user-tours-user-tour.is-active, page-core-mainmenu, ion-app'; | ||||
|                 containers = document.querySelectorAll(containerSelector); | ||||
|         } | ||||
| 
 | ||||
|  | ||||
| @ -69,6 +69,9 @@ class behat_app extends behat_base { | ||||
|     /** @var bool Whether the app is running or not */ | ||||
|     protected $apprunning = false; | ||||
| 
 | ||||
|     /** @var array Config overrides */ | ||||
|     protected $appconfig = ['disableUserTours' => true]; | ||||
| 
 | ||||
|     /** | ||||
|      * Register listener. | ||||
|      * | ||||
| @ -549,6 +552,11 @@ class behat_app extends behat_base { | ||||
|             }, false, 60); | ||||
|         } | ||||
| 
 | ||||
|         // Prepare testing config.
 | ||||
|         $configoverrides = json_encode($this->appconfig); | ||||
| 
 | ||||
|         $this->evaluate_script("configProvider.patchEnvironment($configoverrides)"); | ||||
| 
 | ||||
|         // Continue only after JS finishes.
 | ||||
|         $this->wait_for_pending_js(); | ||||
|     } | ||||
| @ -700,6 +708,7 @@ class behat_app extends behat_base { | ||||
|      * Opens a custom link. | ||||
|      * | ||||
|      * @Given /^I open a custom link in the app for:$/ | ||||
|      * @param TableNode $data | ||||
|      */ | ||||
|     public function i_open_a_custom_link(TableNode $data) { | ||||
|         global $DB, $CFG; | ||||
| @ -751,6 +760,18 @@ class behat_app extends behat_base { | ||||
|         $this->wait_for_pending_js(); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Override app config. | ||||
|      * | ||||
|      * @Given /^the app has the following config:$/ | ||||
|      * @param TableNode $data | ||||
|      */ | ||||
|     public function the_app_has_the_following_config(TableNode $data) { | ||||
|         foreach ($data->getRows() as $configrow) { | ||||
|             $this->appconfig[$configrow[0]] = json_decode($configrow[1]); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Clicks on / touches something that is visible in the app. | ||||
|      * | ||||
|  | ||||
							
								
								
									
										49
									
								
								tests/behat/usertours.feature
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								tests/behat/usertours.feature
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,49 @@ | ||||
| @app @javascript | ||||
| Feature: User Tours work properly. | ||||
| 
 | ||||
|   Background: | ||||
|     Given the following "users" exist: | ||||
|       | username | firstname | lastname | | ||||
|       | student1 | Student   | First    | | ||||
|       | student2 | Student   | Second   | | ||||
|     And the following "courses" exist: | ||||
|       | fullname | shortname | | ||||
|       | Course 1 | C1        | | ||||
|     And the following "course enrolments" exist: | ||||
|       | user     | course | role    | | ||||
|       | student1 | C1     | student | | ||||
|       | student2 | C1     | student | | ||||
|     And the app has the following config: | ||||
|       | disableUserTours | false | | ||||
| 
 | ||||
|   Scenario: Acknowledge User Tours | ||||
|     When I enter the app | ||||
|     And I log in as "student1" | ||||
|     Then I should find "Explore your personal area" in the app | ||||
|     But I should not find "Expand to explore" in the app | ||||
| 
 | ||||
|     When I press "Got it" in the app | ||||
|     Then I should find "Expand to explore" in the app | ||||
|     But I should not find "Explore your personal area" in the app | ||||
| 
 | ||||
|     When I press "Got it" in the app | ||||
|     Then I should not find "Expand to explore" in the app | ||||
|     And I should not find "Explore your personal area" in the app | ||||
| 
 | ||||
|     When I press "My courses" in the app | ||||
|     And I press "Course 1" in the app | ||||
|     Then I should find "Find your way around" in the app | ||||
| 
 | ||||
|     When I press "Got it" in the app | ||||
|     Then I should not find "Find your way around" in the app | ||||
| 
 | ||||
|     When I press "Participants" in the app | ||||
|     And I press "Student First" in the app | ||||
|     Then I should find "Swipe left and right to navigate around" in the app | ||||
| 
 | ||||
|     When I press "Got it" in the app | ||||
|     Then I should not find "Swipe left and right to navigate around" in the app | ||||
| 
 | ||||
|     When I press the back button in the app | ||||
|     And I press "Student First" in the app | ||||
|     Then I should not find "Swipe left and right to navigate around" in the app | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user