forked from EVOgeek/Vmeda.Online
		
	MOBILE-4061 behat: Check tags when launching the app
This commit is contained in:
		
							parent
							
								
									3f5f99c645
								
							
						
					
					
						commit
						46e9468a57
					
				| @ -82,10 +82,7 @@ class behat_app extends behat_app_helper { | |||||||
|      * @throws ExpectationException Problem with resizing window |      * @throws ExpectationException Problem with resizing window | ||||||
|      */ |      */ | ||||||
|     public function i_launch_the_app(string $runtime = '') { |     public function i_launch_the_app(string $runtime = '') { | ||||||
|         // Check the app tag was set.
 |         $this->check_tags(); | ||||||
|         if (!$this->has_tag('app')) { |  | ||||||
|             throw new DriverException('Requires @app tag on scenario or feature.'); |  | ||||||
|         } |  | ||||||
| 
 | 
 | ||||||
|         // Go to page and prepare browser for app.
 |         // Go to page and prepare browser for app.
 | ||||||
|         $this->prepare_browser(['skiponboarding' => empty($runtime)]); |         $this->prepare_browser(['skiponboarding' => empty($runtime)]); | ||||||
|  | |||||||
| @ -19,6 +19,7 @@ | |||||||
| require_once(__DIR__ . '/../../../../lib/behat/behat_base.php'); | require_once(__DIR__ . '/../../../../lib/behat/behat_base.php'); | ||||||
| 
 | 
 | ||||||
| use Behat\Mink\Exception\DriverException; | use Behat\Mink\Exception\DriverException; | ||||||
|  | use Moodle\BehatExtension\Exception\SkippedException; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Behat app listener. |  * Behat app listener. | ||||||
| @ -92,7 +93,6 @@ class behat_app_helper extends behat_base { | |||||||
|      * This updates Moodle configuration and starts Ionic running, if it isn't already. |      * This updates Moodle configuration and starts Ionic running, if it isn't already. | ||||||
|      */ |      */ | ||||||
|     public function start_scenario() { |     public function start_scenario() { | ||||||
|         $this->skip_restricted_tags_scenarios(); |  | ||||||
|         $this->check_behat_setup(); |         $this->check_behat_setup(); | ||||||
|         $this->fix_moodle_setup(); |         $this->fix_moodle_setup(); | ||||||
|         $this->ionicurl = $this->start_or_reuse_ionic(); |         $this->ionicurl = $this->start_or_reuse_ionic(); | ||||||
| @ -623,10 +623,13 @@ EOF; | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * Workaround while MDL-74621 is not integrated in all supported versions. |      * This function will skip scenarios based on @lms_from and @lms_upto tags and also missing @app tags. | ||||||
|      * This function will skip scenarios based on @lms_from and @lms_upto tags. |  | ||||||
|      */ |      */ | ||||||
|     public function skip_restricted_tags_scenarios() { |     public function check_tags() { | ||||||
|  |         if (!$this->has_tag('app')) { | ||||||
|  |             throw new DriverException('Requires @app tag on scenario or feature.'); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         if (is_null($this->lmsversion)) { |         if (is_null($this->lmsversion)) { | ||||||
|             global $CFG; |             global $CFG; | ||||||
| 
 | 
 | ||||||
| @ -644,18 +647,18 @@ EOF; | |||||||
|             $this->lmsversion = trim($version, '.'); |             $this->lmsversion = trim($version, '.'); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         if ($this->has_version_restrictions()) { |         if ($tag = $this->get_first_restricted_version_tag()) { | ||||||
|             // Skip this test.
 |             // Skip this test.
 | ||||||
|             throw new DriverException('Incompatible tags.'); |             throw new SkippedException("LMS version $this->lmsversion is not compatible with tag @$tag."); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * Gets if version is incompatible with the @lms_from and @lms_upto tags. |      * Gets if version is incompatible with the @lms_from and @lms_upto tags. | ||||||
|      * |      * | ||||||
|      * @return bool If scenario has any version incompatible tag. |      * @return string If scenario has any version incompatible tag, return it. | ||||||
|      */ |      */ | ||||||
|     protected function has_version_restrictions() : bool { |     protected function get_first_restricted_version_tag(): ?string { | ||||||
|         $usedtags = behat_hooks::get_tags_for_scenario(); |         $usedtags = behat_hooks::get_tags_for_scenario(); | ||||||
| 
 | 
 | ||||||
|         $detectedversioncount = substr_count($this->lmsversion, '.'); |         $detectedversioncount = substr_count($this->lmsversion, '.'); | ||||||
| @ -685,15 +688,15 @@ EOF; | |||||||
|             // Installed version OLDER than the one being considered, so do not
 |             // Installed version OLDER than the one being considered, so do not
 | ||||||
|             // include any scenarios that only run from the considered version up.
 |             // include any scenarios that only run from the considered version up.
 | ||||||
|             if ($compare === -1 && $direction === 'from') { |             if ($compare === -1 && $direction === 'from') { | ||||||
|                 return true; |                 return $usedtag; | ||||||
|             } |             } | ||||||
|             // Installed version NEWER than the one being considered, so do not
 |             // Installed version NEWER than the one being considered, so do not
 | ||||||
|             // include any scenarios that only run up to that version.
 |             // include any scenarios that only run up to that version.
 | ||||||
|             if ($compare === 1 && $direction === 'upto') { |             if ($compare === 1 && $direction === 'upto') { | ||||||
|                 return true; |                 return $usedtag; | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         return false; |         return null; | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user