forked from EVOgeek/Vmeda.Online
		
	MDL-63977 Behat: Move app startup to before-scenario hook
This commit is contained in:
		
							parent
							
								
									e6299d9a5f
								
							
						
					
					
						commit
						29bcee1db5
					
				@ -42,6 +42,9 @@ class behat_app extends behat_base {
 | 
				
			|||||||
    /** @var stdClass Object with data about launched Ionic instance (if any) */
 | 
					    /** @var stdClass Object with data about launched Ionic instance (if any) */
 | 
				
			||||||
    protected static $ionicrunning = null;
 | 
					    protected static $ionicrunning = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /** @var string URL for running Ionic server */
 | 
				
			||||||
 | 
					    protected $ionicurl = '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Checks if the current OS is Windows, from the point of view of task-executing-and-killing.
 | 
					     * Checks if the current OS is Windows, from the point of view of task-executing-and-killing.
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
@ -51,6 +54,17 @@ class behat_app extends behat_base {
 | 
				
			|||||||
        return strtoupper(substr(PHP_OS, 0, 3)) === 'WIN';
 | 
					        return strtoupper(substr(PHP_OS, 0, 3)) === 'WIN';
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Called from behat_hooks when a new scenario starts, if it has the app tag.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * This updates Moodle configuration and starts Ionic running, if it isn't already.
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function start_scenario() {
 | 
				
			||||||
 | 
					        $this->check_behat_setup();
 | 
				
			||||||
 | 
					        $this->fix_moodle_setup();
 | 
				
			||||||
 | 
					        $this->ionicurl = $this->start_or_reuse_ionic();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Opens the Moodle app in the browser.
 | 
					     * Opens the Moodle app in the browser.
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
@ -62,19 +76,17 @@ class behat_app extends behat_base {
 | 
				
			|||||||
     * @throws ExpectationException Problem with resizing window
 | 
					     * @throws ExpectationException Problem with resizing window
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public function i_enter_the_app() {
 | 
					    public function i_enter_the_app() {
 | 
				
			||||||
 | 
					        // Check the app tag was set.
 | 
				
			||||||
 | 
					        if (!$this->has_tag('app')) {
 | 
				
			||||||
 | 
					            throw new DriverException('Requires @app tag on scenario or feature.');
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Restart the browser and set its size.
 | 
					        // Restart the browser and set its size.
 | 
				
			||||||
        $this->getSession()->restart();
 | 
					        $this->getSession()->restart();
 | 
				
			||||||
        $this->resize_window('360x720', true);
 | 
					        $this->resize_window('360x720', true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Prepare setup.
 | 
					 | 
				
			||||||
        $this->check_behat_setup();
 | 
					 | 
				
			||||||
        $this->fix_moodle_setup();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // Start Ionic server (or use existing one).
 | 
					 | 
				
			||||||
        $url = $this->start_or_reuse_ionic();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // Go to page and prepare browser for app.
 | 
					        // Go to page and prepare browser for app.
 | 
				
			||||||
        $this->prepare_browser($url);
 | 
					        $this->prepare_browser($this->ionicurl);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
@ -85,11 +97,6 @@ class behat_app extends behat_base {
 | 
				
			|||||||
    protected function check_behat_setup() {
 | 
					    protected function check_behat_setup() {
 | 
				
			||||||
        global $CFG;
 | 
					        global $CFG;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Check the app tag was set.
 | 
					 | 
				
			||||||
        if (!$this->has_tag('app')) {
 | 
					 | 
				
			||||||
            throw new DriverException('Requires @app tag on scenario or feature.');
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // Check JavaScript is enabled.
 | 
					        // Check JavaScript is enabled.
 | 
				
			||||||
        if (!$this->running_javascript()) {
 | 
					        if (!$this->running_javascript()) {
 | 
				
			||||||
            throw new DriverException('The app requires JavaScript.');
 | 
					            throw new DriverException('The app requires JavaScript.');
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user