-
Notifications
You must be signed in to change notification settings - Fork 46
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #176 from NoelDeMartin/moodle-app
Support and document usage with the Moodle App
- Loading branch information
Showing
26 changed files
with
335 additions
and
33 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
--- | ||
layout: page | ||
title: Moodle App | ||
--- | ||
|
||
In order to test plugins with mobile support, the only command that needs a special configuration is `behat`. | ||
|
||
In practice, you only need to set the `MOODLE_APP` env variable to `true`, and all the dependencies will be configured during the `install` command. You can also configure the behaviour of [Acceptance testing for the Moodle App](https://moodledev.io/general/app/development/testing/acceptance-testing) using the following env variables: | ||
|
||
- `MOODLE_APP_DOCKER_IMAGE`: Tag of [the Moodle App Docker image](https://moodledev.io/general/app/development/setup/docker-images) to use for running the app. The default value is `moodlehq/moodleapp:latest-test`. | ||
- `MOODLE_APP_BEHAT_PLUGIN_PROJECT`: Project in github to use for installing the plugin with Behat steps specific to the Moodle App. The default value is `moodlehq/moodle-local_moodleappbehat`. This variable will be ignored if `MOODLE_APP_BEHAT_PLUGIN_REPOSITORY` is set. | ||
- `MOODLE_APP_BEHAT_PLUGIN_REPOSITORY`: Repository url to use for installing the plugin with Behat steps specific to the Moodle App. By default, the github repository defined in `MOODLE_APP_BEHAT_PLUGIN_PROJECT` will be used. | ||
- `MOODLE_APP_BEHAT_PLUGIN_BRANCH`: Branch of the repository to use for installing the plugin with Behat steps specific to the Moodle App. The default value is `latest`. | ||
- `MOODLE_BEHAT_IONIC_WWWROOT`: Value to use in `$CFG->behat_ionic_wwwroot`. The default value is `http://localhost:8100`. This value should only be used if `MOODLE_APP` is not set, and the Moodle App dependencies are configured manually. | ||
|
||
Finally, keep in mind that mobile tests only run on Chrome, so make sure that you're using the correct browser. If you're setting the `MOODLE_APP` variable, the default browser should already be Chrome; but you can set it explicitly using the `--profile` flag otherwise. | ||
|
||
For specific examples, look at the [gha.dist.yml](GHAFileExplained.md) or [.travis.dist.yml](TravisFileExplained.md) files, and uncomment the lines mentioning the app. | ||
|
||
**Important:** Please notice that `MOODLE_APP` only works starting with version 4.1 of the app. If you want to use this setup against older versions, you'll have to use `MOODLE_BEHAT_IONIC_WWWROOT` and configure the dependencies manually (installing the plugin, launching the docker image, etc.). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -29,6 +29,9 @@ $CFG->debugdisplay = 1; | |
$CFG->noemailever = true; | ||
$CFG->noreplyaddress = '[email protected]'; | ||
|
||
// App settings. | ||
$CFG->behat_ionic_wwwroot = '{{BEHATIONICWWWROOT}}'; | ||
|
||
// PHPUnit settings. | ||
$CFG->phpunit_prefix = 'phpu_'; | ||
$CFG->phpunit_dataroot = '{{PHPUNITDATAROOT}}'; | ||
|
@@ -40,13 +43,17 @@ $CFG->behat_wwwroot = '{{BEHATWWWROOT}}'; | |
$CFG->behat_faildump_path = '{{BEHATDUMP}}'; | ||
$CFG->behat_profiles = [ | ||
'default' => [ | ||
'browser' => 'firefox', | ||
'browser' => '{{BEHATDEFAULTBROWSER}}', | ||
'wd_host' => '{{BEHATWDHOST}}', | ||
], | ||
'chrome' => [ | ||
'browser' => 'chrome', | ||
'wd_host' => '{{BEHATWDHOST}}', | ||
], | ||
'firefox' => [ | ||
'browser' => 'firefox', | ||
'wd_host' => '{{BEHATWDHOST}}', | ||
], | ||
]; | ||
|
||
{{EXTRACONFIG}} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
<?php | ||
|
||
/* | ||
* This file is part of the Moodle Plugin CI package. | ||
* | ||
* For the full copyright and license information, please view the LICENSE | ||
* file that was distributed with this source code. | ||
* | ||
* Copyright (c) 2018 Blackboard Inc. (http://www.blackboard.com) | ||
* License http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | ||
*/ | ||
|
||
namespace MoodlePluginCI\Installer; | ||
|
||
use MoodlePluginCI\Process\Execute; | ||
use MoodlePluginCI\Validate; | ||
use Symfony\Component\Filesystem\Filesystem; | ||
use Symfony\Component\Process\Process; | ||
|
||
/** | ||
* Moodle App Installer. | ||
*/ | ||
class MoodleAppInstaller extends AbstractInstaller | ||
{ | ||
private Execute $execute; | ||
private string $pluginsDir; | ||
|
||
public function __construct(Execute $execute, string $pluginsDir) | ||
{ | ||
$this->execute = $execute; | ||
$this->pluginsDir = $pluginsDir; | ||
} | ||
|
||
public function install(): void | ||
{ | ||
$this->addEnv('MOODLE_APP', 'true'); | ||
|
||
// Launch docker image. | ||
$this->getOutput()->step('Launch Moodle App docker image'); | ||
|
||
$image = getenv('MOODLE_APP_DOCKER_IMAGE') ?: 'moodlehq/moodleapp:latest-test'; | ||
|
||
$this->execute->mustRun([ | ||
'docker', | ||
'run', | ||
'-d', | ||
'--rm', | ||
'--name=moodleapp', | ||
'-p', | ||
'8100:80', | ||
$image, | ||
]); | ||
|
||
// Clone plugin. | ||
$this->getOutput()->step('Clone Moodle App Behat plugin'); | ||
|
||
$pluginProject = getenv('MOODLE_APP_BEHAT_PLUGIN_PROJECT') ?: 'moodlehq/moodle-local_moodleappbehat'; | ||
$pluginRepository = getenv('MOODLE_APP_BEHAT_PLUGIN_REPOSITORY') ?: sprintf('https://github.com/%s.git', $pluginProject); | ||
$pluginBranch = getenv('MOODLE_APP_BEHAT_PLUGIN_BRANCH') ?: 'latest'; | ||
$filesystem = new Filesystem(); | ||
$validate = new Validate(); | ||
$command = [ | ||
'git', | ||
'clone', | ||
'--depth', | ||
'1', | ||
'--branch', | ||
$pluginBranch, | ||
$pluginRepository, | ||
]; | ||
|
||
$filesystem->mkdir($this->pluginsDir); | ||
$storageDir = realpath($validate->directory($this->pluginsDir)); | ||
$this->execute->mustRun(new Process($command, $storageDir, null, null, null)); | ||
} | ||
|
||
public function stepCount(): int | ||
{ | ||
return 2; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.