Commit 65326361e26a83c5c712cb69bbfeffa4f2b061c7
1 parent
718ec4d1
test
Showing
116 changed files
with
273 additions
and
2065 deletions
Show diff stats
.gitignore
codeception.yml
| @@ -7,7 +7,7 @@ paths: | @@ -7,7 +7,7 @@ paths: | ||
| 7 | envs: tests/_envs | 7 | envs: tests/_envs |
| 8 | settings: | 8 | settings: |
| 9 | bootstrap: _bootstrap.php | 9 | bootstrap: _bootstrap.php |
| 10 | - colors: true | 10 | + colors: false |
| 11 | memory_limit: 1024M | 11 | memory_limit: 1024M |
| 12 | extensions: | 12 | extensions: |
| 13 | enabled: | 13 | enabled: |
| 1 | +<?php | ||
| 2 | + namespace common\behaviors; | ||
| 3 | + | ||
| 4 | + use yii\base\Behavior; | ||
| 5 | + use yii\base\ErrorException; | ||
| 6 | + use yii\base\Event; | ||
| 7 | + use yii\db\ActiveRecord; | ||
| 8 | + use yii\helpers\Html; | ||
| 9 | + | ||
| 10 | + /** | ||
| 11 | + * Class MapsBehavior | ||
| 12 | + * @package common\behaviors | ||
| 13 | + */ | ||
| 14 | + class MapsBehavior extends Behavior | ||
| 15 | + { | ||
| 16 | + | ||
| 17 | + public $location_attributes = [ ]; | ||
| 18 | + | ||
| 19 | + public $required_attributes = [ ]; | ||
| 20 | + | ||
| 21 | + /** | ||
| 22 | + * @inheritdoc | ||
| 23 | + */ | ||
| 24 | + public function events() | ||
| 25 | + { | ||
| 26 | + return [ | ||
| 27 | + ActiveRecord::EVENT_BEFORE_INSERT => 'beforeSave', | ||
| 28 | + ActiveRecord::EVENT_BEFORE_UPDATE => 'beforeSave', | ||
| 29 | + ]; | ||
| 30 | + } | ||
| 31 | + | ||
| 32 | + /** | ||
| 33 | + * After saving model get latitude (lat) and longitude (lng) from Google Map Api and insert | ||
| 34 | + * to the database | ||
| 35 | + * | ||
| 36 | + * @param Event $event | ||
| 37 | + * | ||
| 38 | + * @return bool | ||
| 39 | + * @throws ErrorException | ||
| 40 | + */ | ||
| 41 | + public function beforeSave($event) | ||
| 42 | + { | ||
| 43 | + /** | ||
| 44 | + * @var ActiveRecord $owner | ||
| 45 | + */ | ||
| 46 | + $owner = $this->owner; | ||
| 47 | + foreach($this->required_attributes as $required_attribute) { | ||
| 48 | + if(empty( $owner->$required_attribute )) { | ||
| 49 | + return true; | ||
| 50 | + } | ||
| 51 | + } | ||
| 52 | + $location = ''; | ||
| 53 | + $first = true; | ||
| 54 | + foreach($this->location_attributes as $location_attribute) { | ||
| 55 | + if(!$first) { | ||
| 56 | + $location .= '+'; | ||
| 57 | + } | ||
| 58 | + $location .= $owner->$location_attribute; | ||
| 59 | + $first = false; | ||
| 60 | + } | ||
| 61 | + $location = Html::encode($location); | ||
| 62 | + $ch = curl_init(); | ||
| 63 | + if(!$ch) { | ||
| 64 | + throw new ErrorException('Curl error'); | ||
| 65 | + } | ||
| 66 | + curl_setopt($ch, CURLOPT_URL, "https://maps.googleapis.com/maps/api/geocode/json?address=" . $location); | ||
| 67 | + curl_setopt($ch, CURLOPT_HEADER, 0); | ||
| 68 | + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); | ||
| 69 | + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); | ||
| 70 | + $result = json_decode(curl_exec($ch)); | ||
| 71 | + curl_close($ch); | ||
| 72 | + if(!empty($result->results)) { | ||
| 73 | + $owner->lat = $result->results[0]->geometry->location->lat; | ||
| 74 | + $owner->lng = $result->results[0]->geometry->location->lng; | ||
| 75 | + } | ||
| 76 | + return true; | ||
| 77 | + } | ||
| 78 | + } | ||
| 0 | \ No newline at end of file | 79 | \ No newline at end of file |
common/models/Project.php
| @@ -2,6 +2,7 @@ | @@ -2,6 +2,7 @@ | ||
| 2 | 2 | ||
| 3 | namespace common\models; | 3 | namespace common\models; |
| 4 | 4 | ||
| 5 | + use common\behaviors\MapsBehavior; | ||
| 5 | use common\modules\comment\models\CommentProject; | 6 | use common\modules\comment\models\CommentProject; |
| 6 | use common\modules\fileloader\behaviors\FileloaderBehavior; | 7 | use common\modules\fileloader\behaviors\FileloaderBehavior; |
| 7 | use Yii; | 8 | use Yii; |
| @@ -76,6 +77,17 @@ | @@ -76,6 +77,17 @@ | ||
| 76 | 'fileloader' => [ | 77 | 'fileloader' => [ |
| 77 | 'class' => FileloaderBehavior::className(), | 78 | 'class' => FileloaderBehavior::className(), |
| 78 | ], | 79 | ], |
| 80 | + 'maps' => [ | ||
| 81 | + 'class' => MapsBehavior::className(), | ||
| 82 | + 'location_attributes' => [ | ||
| 83 | + 'city', | ||
| 84 | + 'street', | ||
| 85 | + 'house', | ||
| 86 | + ], | ||
| 87 | + 'required_attributes' => [ | ||
| 88 | + 'city', | ||
| 89 | + ], | ||
| 90 | + ], | ||
| 79 | ]; | 91 | ]; |
| 80 | } | 92 | } |
| 81 | 93 | ||
| @@ -160,7 +172,11 @@ | @@ -160,7 +172,11 @@ | ||
| 160 | 'boolean', | 172 | 'boolean', |
| 161 | ], | 173 | ], |
| 162 | [ | 174 | [ |
| 163 | - [ 'hidden', 'budget', 'total_budget' ], | 175 | + [ |
| 176 | + 'hidden', | ||
| 177 | + 'budget', | ||
| 178 | + 'total_budget', | ||
| 179 | + ], | ||
| 164 | 'default', | 180 | 'default', |
| 165 | 'value' => 0, | 181 | 'value' => 0, |
| 166 | ], | 182 | ], |
console/migrations/m160504_145135_add_coordinates_columns_to_project_and_portfolio.php
0 → 100644
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +use yii\db\Migration; | ||
| 4 | + | ||
| 5 | +/** | ||
| 6 | + * Handles adding coordinates_columns to table `project_and_portfolio`. | ||
| 7 | + */ | ||
| 8 | +class m160504_145135_add_coordinates_columns_to_project_and_portfolio extends Migration | ||
| 9 | +{ | ||
| 10 | + /** | ||
| 11 | + * @inheritdoc | ||
| 12 | + */ | ||
| 13 | + public function up() | ||
| 14 | + { | ||
| 15 | + $this->addColumn('{{%project}}', 'lat', $this->string()); | ||
| 16 | + $this->addColumn('{{%project}}', 'lng', $this->string()); | ||
| 17 | + $this->addColumn('{{%portfolio}}', 'lat', $this->string()); | ||
| 18 | + $this->addColumn('{{%portfolio}}', 'lng', $this->string()); | ||
| 19 | + } | ||
| 20 | + | ||
| 21 | + /** | ||
| 22 | + * @inheritdoc | ||
| 23 | + */ | ||
| 24 | + public function down() | ||
| 25 | + { | ||
| 26 | + $this->dropColumn('{{%project}}', 'lat'); | ||
| 27 | + $this->dropColumn('{{%project}}', 'lng'); | ||
| 28 | + $this->dropColumn('{{%portfolio}}', 'lat'); | ||
| 29 | + $this->dropColumn('{{%portfolio}}', 'lng'); | ||
| 30 | + } | ||
| 31 | +} |
frontend/views/performer/portfolio-view.php
| @@ -120,7 +120,7 @@ | @@ -120,7 +120,7 @@ | ||
| 120 | <?php | 120 | <?php |
| 121 | foreach($portfolio->ShowGallery($portfolio->gallery->photo) as $one_photo) { | 121 | foreach($portfolio->ShowGallery($portfolio->gallery->photo) as $one_photo) { |
| 122 | ?> | 122 | ?> |
| 123 | - <li><img src="<?= $one_photo ?>" alt=""/></li> | 123 | + <li><img src="<?= $portfolio->minImg($one_photo, 210, 150) ?>" alt=""/></li> |
| 124 | <?php | 124 | <?php |
| 125 | } | 125 | } |
| 126 | ?> | 126 | ?> |
frontend/views/site/index.php
| @@ -10,6 +10,26 @@ | @@ -10,6 +10,26 @@ | ||
| 10 | $this->title = 'My Yii Application'; | 10 | $this->title = 'My Yii Application'; |
| 11 | ?> | 11 | ?> |
| 12 | <div class="section-box-1"> | 12 | <div class="section-box-1"> |
| 13 | + <?php | ||
| 14 | + /* Yarik map fun | ||
| 15 | + ?> | ||
| 16 | + <div id="map_test" style="width:100%;height:500px;"> | ||
| 17 | + | ||
| 18 | + </div> | ||
| 19 | + <script> | ||
| 20 | + $(function() { | ||
| 21 | + initMap(); | ||
| 22 | + }); | ||
| 23 | + var map; | ||
| 24 | + function initMap() { | ||
| 25 | + map = new google.maps.Map(document.getElementById('map_test'), { | ||
| 26 | + center: {lat: -34.397, lng: 150.644}, | ||
| 27 | + zoom: 8 | ||
| 28 | + }) | ||
| 29 | + } | ||
| 30 | + </script> | ||
| 31 | + */ | ||
| 32 | + ?> | ||
| 13 | <div class="box-wr"> | 33 | <div class="box-wr"> |
| 14 | <div class="box-all"> | 34 | <div class="box-all"> |
| 15 | <div class="section-box-base"> | 35 | <div class="section-box-base"> |
| @@ -97,121 +117,121 @@ | @@ -97,121 +117,121 @@ | ||
| 97 | <div class="shadow-map"></div> | 117 | <div class="shadow-map"></div> |
| 98 | <div id="map_cloud" style="display: none;"> | 118 | <div id="map_cloud" style="display: none;"> |
| 99 | <script type="text/javascript"> | 119 | <script type="text/javascript"> |
| 100 | - function initialize() | ||
| 101 | - { | ||
| 102 | - var start_position = new google.maps.LatLng('56', '30'); | ||
| 103 | - var settings = { | ||
| 104 | - zoom : 7, scrollwheel : false, center : start_position, | ||
| 105 | - mapTypeControl : false, | ||
| 106 | - mapTypeControlOptions : {style : google.maps.MapTypeControlStyle.DROPDOWN_MENU}, | ||
| 107 | - navigationControl : false, | ||
| 108 | - navigationControlOptions : {style : google.maps.NavigationControlStyle.SMALL}, | ||
| 109 | - scaleControl : false, streetViewControl : false, rotateControl : false, | ||
| 110 | - zoomControl : true, mapTypeId : google.maps.MapTypeId.ROADMAP | ||
| 111 | - }; | ||
| 112 | - var map = new google.maps.Map(document.getElementById("map_canvas"), settings); | ||
| 113 | - | ||
| 114 | - var image1 = new google.maps.MarkerImage( | ||
| 115 | - '/images/markers/marker-we-1.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 116 | - ); | ||
| 117 | - var image2 = new google.maps.MarkerImage( | ||
| 118 | - '/images/markers/marker-we-2.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 119 | - ); | ||
| 120 | - var image3 = new google.maps.MarkerImage( | ||
| 121 | - '/images/markers/marker-we-3.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 122 | - ); | ||
| 123 | - var image4 = new google.maps.MarkerImage( | ||
| 124 | - '/images/markers/marker-we-4.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 125 | - ); | ||
| 126 | - var image5 = new google.maps.MarkerImage( | ||
| 127 | - '/images/markers/marker-we-5.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 128 | - ); | ||
| 129 | - var image6 = new google.maps.MarkerImage( | ||
| 130 | - '/images/markers/marker-we-6.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 131 | - ); | ||
| 132 | - var image7 = new google.maps.MarkerImage( | ||
| 133 | - '/images/markers/marker-we-7.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 134 | - ); | ||
| 135 | - var image8 = new google.maps.MarkerImage( | ||
| 136 | - '/images/markers/marker-we-8.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 137 | - ); | ||
| 138 | - var image9 = new google.maps.MarkerImage( | ||
| 139 | - '/images/markers/marker-we-9.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 140 | - ); | ||
| 141 | - var image10 = new google.maps.MarkerImage( | ||
| 142 | - '/images/markers/marker-empl-1.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 143 | - ); | ||
| 144 | - var image11 = new google.maps.MarkerImage( | ||
| 145 | - '/images/markers/marker-empl-2.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 146 | - ); | ||
| 147 | - var image12 = new google.maps.MarkerImage( | ||
| 148 | - '/images/markers/marker-empl-3.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 149 | - ); | ||
| 150 | - var image13 = new google.maps.MarkerImage( | ||
| 151 | - '/images/markers/marker-empl-4.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 152 | - ); | ||
| 153 | - var image14 = new google.maps.MarkerImage( | ||
| 154 | - '/images/markers/marker-empl-5.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 155 | - ); | ||
| 156 | - var image15 = new google.maps.MarkerImage( | ||
| 157 | - '/images/markers/marker-empl-6.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 158 | - ); | ||
| 159 | - var image16 = new google.maps.MarkerImage( | ||
| 160 | - '/images/markers/marker-empl-7.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 161 | - ); | ||
| 162 | - var image17 = new google.maps.MarkerImage( | ||
| 163 | - '/images/markers/marker-empl-8.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 164 | - ); | ||
| 165 | - var image18 = new google.maps.MarkerImage( | ||
| 166 | - '/images/markers/marker-empl-9.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 167 | - ); | ||
| 168 | - | ||
| 169 | - var markers = []; | ||
| 170 | - | ||
| 171 | - var marker = new google.maps.Marker( | ||
| 172 | - { | ||
| 173 | - position : new google.maps.LatLng('56', '35.3'), map : map, | ||
| 174 | - title : 'Marker Title2', icon : image1 | ||
| 175 | - } | ||
| 176 | - ); | ||
| 177 | - markers.push(marker); | ||
| 178 | - | ||
| 179 | - var marker = new google.maps.Marker( | ||
| 180 | - { | ||
| 181 | - position : new google.maps.LatLng('56', '36'), map : map, | ||
| 182 | - title : 'Marker Title2', icon : image2 | ||
| 183 | - } | ||
| 184 | - ); | ||
| 185 | - markers.push(marker); | ||
| 186 | - | ||
| 187 | - var marker = new google.maps.Marker( | ||
| 188 | - { | ||
| 189 | - position : new google.maps.LatLng('56', '34.5'), map : map, | ||
| 190 | - title : 'Marker Title3', icon : image18 | ||
| 191 | - } | ||
| 192 | - ); | ||
| 193 | - markers.push(marker); | ||
| 194 | - | ||
| 195 | - var marker = new google.maps.Marker( | ||
| 196 | - { | ||
| 197 | - position : new google.maps.LatLng('56', '35'), map : map, | ||
| 198 | - title : 'Marker Title4', icon : image13 | ||
| 199 | - } | ||
| 200 | - ); | ||
| 201 | - markers.push(marker); | ||
| 202 | - | ||
| 203 | - var clusterStyles = [ | ||
| 204 | - { | ||
| 205 | - url : '/images/markers/clasters.png', height : 36, width : 36 | ||
| 206 | - } | ||
| 207 | - | ||
| 208 | - ]; | ||
| 209 | - markerClusterer = new MarkerClusterer( | ||
| 210 | - map, markers, { | ||
| 211 | - maxZoom : 10, gridSize : 100, styles : clusterStyles | ||
| 212 | - } | ||
| 213 | - ); | ||
| 214 | - } | 120 | + // function initialize() |
| 121 | + // { | ||
| 122 | + // var start_position = new google.maps.LatLng('56', '30'); | ||
| 123 | + // var settings = { | ||
| 124 | + // zoom : 7, scrollwheel : false, center : start_position, | ||
| 125 | + // mapTypeControl : false, | ||
| 126 | + // mapTypeControlOptions : {style : google.maps.MapTypeControlStyle.DROPDOWN_MENU}, | ||
| 127 | + // navigationControl : false, | ||
| 128 | + // navigationControlOptions : {style : google.maps.NavigationControlStyle.SMALL}, | ||
| 129 | + // scaleControl : false, streetViewControl : false, rotateControl : false, | ||
| 130 | + // zoomControl : true, mapTypeId : google.maps.MapTypeId.ROADMAP | ||
| 131 | + // }; | ||
| 132 | + // var map = new google.maps.Map(document.getElementById("map_canvas"), settings); | ||
| 133 | + // | ||
| 134 | + // var image1 = new google.maps.MarkerImage( | ||
| 135 | + // '/images/markers/marker-we-1.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 136 | + // ); | ||
| 137 | + // var image2 = new google.maps.MarkerImage( | ||
| 138 | + // '/images/markers/marker-we-2.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 139 | + // ); | ||
| 140 | + // var image3 = new google.maps.MarkerImage( | ||
| 141 | + // '/images/markers/marker-we-3.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 142 | + // ); | ||
| 143 | + // var image4 = new google.maps.MarkerImage( | ||
| 144 | + // '/images/markers/marker-we-4.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 145 | + // ); | ||
| 146 | + // var image5 = new google.maps.MarkerImage( | ||
| 147 | + // '/images/markers/marker-we-5.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 148 | + // ); | ||
| 149 | + // var image6 = new google.maps.MarkerImage( | ||
| 150 | + // '/images/markers/marker-we-6.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 151 | + // ); | ||
| 152 | + // var image7 = new google.maps.MarkerImage( | ||
| 153 | + // '/images/markers/marker-we-7.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 154 | + // ); | ||
| 155 | + // var image8 = new google.maps.MarkerImage( | ||
| 156 | + // '/images/markers/marker-we-8.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 157 | + // ); | ||
| 158 | + // var image9 = new google.maps.MarkerImage( | ||
| 159 | + // '/images/markers/marker-we-9.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 160 | + // ); | ||
| 161 | + // var image10 = new google.maps.MarkerImage( | ||
| 162 | + // '/images/markers/marker-empl-1.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 163 | + // ); | ||
| 164 | + // var image11 = new google.maps.MarkerImage( | ||
| 165 | + // '/images/markers/marker-empl-2.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 166 | + // ); | ||
| 167 | + // var image12 = new google.maps.MarkerImage( | ||
| 168 | + // '/images/markers/marker-empl-3.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 169 | + // ); | ||
| 170 | + // var image13 = new google.maps.MarkerImage( | ||
| 171 | + // '/images/markers/marker-empl-4.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 172 | + // ); | ||
| 173 | + // var image14 = new google.maps.MarkerImage( | ||
| 174 | + // '/images/markers/marker-empl-5.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 175 | + // ); | ||
| 176 | + // var image15 = new google.maps.MarkerImage( | ||
| 177 | + // '/images/markers/marker-empl-6.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 178 | + // ); | ||
| 179 | + // var image16 = new google.maps.MarkerImage( | ||
| 180 | + // '/images/markers/marker-empl-7.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 181 | + // ); | ||
| 182 | + // var image17 = new google.maps.MarkerImage( | ||
| 183 | + // '/images/markers/marker-empl-8.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 184 | + // ); | ||
| 185 | + // var image18 = new google.maps.MarkerImage( | ||
| 186 | + // '/images/markers/marker-empl-9.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
| 187 | + // ); | ||
| 188 | + // | ||
| 189 | + // var markers = []; | ||
| 190 | + // | ||
| 191 | + // var marker = new google.maps.Marker( | ||
| 192 | + // { | ||
| 193 | + // position : new google.maps.LatLng('56', '35.3'), map : map, | ||
| 194 | + // title : 'Marker Title2', icon : image1 | ||
| 195 | + // } | ||
| 196 | + // ); | ||
| 197 | + // markers.push(marker); | ||
| 198 | + // | ||
| 199 | + // var marker = new google.maps.Marker( | ||
| 200 | + // { | ||
| 201 | + // position : new google.maps.LatLng('56', '36'), map : map, | ||
| 202 | + // title : 'Marker Title2', icon : image2 | ||
| 203 | + // } | ||
| 204 | + // ); | ||
| 205 | + // markers.push(marker); | ||
| 206 | + // | ||
| 207 | + // var marker = new google.maps.Marker( | ||
| 208 | + // { | ||
| 209 | + // position : new google.maps.LatLng('56', '34.5'), map : map, | ||
| 210 | + // title : 'Marker Title3', icon : image18 | ||
| 211 | + // } | ||
| 212 | + // ); | ||
| 213 | + // markers.push(marker); | ||
| 214 | + // | ||
| 215 | + // var marker = new google.maps.Marker( | ||
| 216 | + // { | ||
| 217 | + // position : new google.maps.LatLng('56', '35'), map : map, | ||
| 218 | + // title : 'Marker Title4', icon : image13 | ||
| 219 | + // } | ||
| 220 | + // ); | ||
| 221 | + // markers.push(marker); | ||
| 222 | + // | ||
| 223 | + // var clusterStyles = [ | ||
| 224 | + // { | ||
| 225 | + // url : '/images/markers/clasters.png', height : 36, width : 36 | ||
| 226 | + // } | ||
| 227 | + // | ||
| 228 | + // ]; | ||
| 229 | + // markerClusterer = new MarkerClusterer( | ||
| 230 | + // map, markers, { | ||
| 231 | + // maxZoom : 10, gridSize : 100, styles : clusterStyles | ||
| 232 | + // } | ||
| 233 | + // ); | ||
| 234 | + // } | ||
| 215 | </script> | 235 | </script> |
| 216 | </div> | 236 | </div> |
| 217 | <div id="map_canvas" style="width: 100%; height:100%;"></div> | 237 | <div id="map_canvas" style="width: 100%; height:100%;"></div> |
tests/README.md deleted
| 1 | -This directory contains various tests for the advanced applications. | ||
| 2 | - | ||
| 3 | -Tests in `codeception` directory are developed with [Codeception PHP Testing Framework](http://codeception.com/). | ||
| 4 | - | ||
| 5 | -After creating and setting up the advanced application, follow these steps to prepare for the tests: | ||
| 6 | - | ||
| 7 | -1. Install Codeception if it's not yet installed: | ||
| 8 | - | ||
| 9 | - ``` | ||
| 10 | - composer global require "codeception/codeception=2.0.*" "codeception/specify=*" "codeception/verify=*" | ||
| 11 | - ``` | ||
| 12 | - | ||
| 13 | - If you've never used Composer for global packages run `composer global status`. It should output: | ||
| 14 | - | ||
| 15 | - ``` | ||
| 16 | - Changed current directory to <directory> | ||
| 17 | - ``` | ||
| 18 | - | ||
| 19 | - Then add `<directory>/vendor/bin` to you `PATH` environment variable. Now you're able to use `codecept` from command | ||
| 20 | - line globally. | ||
| 21 | - | ||
| 22 | -2. Install faker extension by running the following from template root directory where `composer.json` is: | ||
| 23 | - | ||
| 24 | - ``` | ||
| 25 | - composer require --dev yiisoft/yii2-faker:* | ||
| 26 | - ``` | ||
| 27 | - | ||
| 28 | -3. Create `yii2_advanced_tests` database then update it by applying migrations: | ||
| 29 | - | ||
| 30 | - ``` | ||
| 31 | - codeception/bin/yii migrate | ||
| 32 | - ``` | ||
| 33 | - | ||
| 34 | -4. In order to be able to run acceptance tests you need to start a webserver. The simplest way is to use PHP built in | ||
| 35 | - webserver. In the root directory where `common`, `frontend` etc. are execute the following: | ||
| 36 | - | ||
| 37 | - ``` | ||
| 38 | - php -S localhost:8080 | ||
| 39 | - ``` | ||
| 40 | - | ||
| 41 | -5. Now you can run the tests with the following commands, assuming you are in the `tests/codeception` directory: | ||
| 42 | - | ||
| 43 | - ``` | ||
| 44 | - # frontend tests | ||
| 45 | - cd frontend | ||
| 46 | - codecept build | ||
| 47 | - codecept run | ||
| 48 | - | ||
| 49 | - # backend tests | ||
| 50 | - | ||
| 51 | - cd backend | ||
| 52 | - codecept build | ||
| 53 | - codecept run | ||
| 54 | - | ||
| 55 | - # etc. | ||
| 56 | - ``` | ||
| 57 | - | ||
| 58 | - If you already have run `codecept build` for each application, you can skip that step and run all tests by a single `codecept run`. |
tests/_bootstrap.php
| 1 | <?php | 1 | <?php |
| 2 | - | ||
| 3 | -defined('YII_DEBUG') or define('YII_DEBUG', true); | ||
| 4 | -defined('YII_ENV') or define('YII_ENV', 'test'); | ||
| 5 | - | ||
| 6 | -require(__DIR__ . '/../vendor/autoload.php'); | ||
| 7 | -require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php'); | ||
| 8 | -require(__DIR__ . '/../common/config/bootstrap.php'); | ||
| 9 | - | ||
| 10 | -$config = yii\helpers\ArrayHelper::merge( | ||
| 11 | - require(__DIR__ . '/../common/config/main.php'), | ||
| 12 | - require(__DIR__ . '/../common/config/main-local.php'), | ||
| 13 | - require(__DIR__ . '/config/main.php') | ||
| 14 | - | ||
| 15 | -); | ||
| 16 | - | ||
| 17 | -Yii::setAlias('@tests', dirname(__DIR__)); | ||
| 18 | - | ||
| 19 | -$application = new yii\web\Application($config); | ||
| 20 | \ No newline at end of file | 2 | \ No newline at end of file |
| 3 | +// This is global bootstrap for autoloading |
tests/_data/ViewIllustrator_2001.jpg deleted
477 KB
tests/_support/AcceptanceTester.php
| @@ -12,7 +12,7 @@ | @@ -12,7 +12,7 @@ | ||
| 12 | * @method void am($role) | 12 | * @method void am($role) |
| 13 | * @method void lookForwardTo($achieveValue) | 13 | * @method void lookForwardTo($achieveValue) |
| 14 | * @method void comment($description) | 14 | * @method void comment($description) |
| 15 | - * @method \Codeception\Lib\Friend haveFriend($name, $actorClass = null) | 15 | + * @method \Codeception\Lib\Friend haveFriend($name, $actorClass = NULL) |
| 16 | * | 16 | * |
| 17 | * @SuppressWarnings(PHPMD) | 17 | * @SuppressWarnings(PHPMD) |
| 18 | */ | 18 | */ |
tests/_support/FunctionalTester.php
| @@ -12,7 +12,7 @@ | @@ -12,7 +12,7 @@ | ||
| 12 | * @method void am($role) | 12 | * @method void am($role) |
| 13 | * @method void lookForwardTo($achieveValue) | 13 | * @method void lookForwardTo($achieveValue) |
| 14 | * @method void comment($description) | 14 | * @method void comment($description) |
| 15 | - * @method \Codeception\Lib\Friend haveFriend($name, $actorClass = null) | 15 | + * @method \Codeception\Lib\Friend haveFriend($name, $actorClass = NULL) |
| 16 | * | 16 | * |
| 17 | * @SuppressWarnings(PHPMD) | 17 | * @SuppressWarnings(PHPMD) |
| 18 | */ | 18 | */ |
tests/_support/Helper/Acceptance.php
tests/_support/Helper/Functional.php
tests/_support/Helper/Unit.php
tests/_support/Step/Acceptance/CRMOperatorSteps.php deleted
| 1 | -<?php | ||
| 2 | -namespace Step\Acceptance; | ||
| 3 | - | ||
| 4 | -class CRMOperatorSteps extends \AcceptanceTester | ||
| 5 | -{ | ||
| 6 | - public function amInAddCustomerUi(){ | ||
| 7 | - $I = $this; | ||
| 8 | - $I->amOnPage('site/signup'); | ||
| 9 | - } | ||
| 10 | - | ||
| 11 | - public function imagineCustomer(){ | ||
| 12 | - $fake = \Faker\Factory::create(); | ||
| 13 | - return [ | ||
| 14 | - 'SignupForm[username]' => $fake->name, | ||
| 15 | - 'SignupForm[email]' => $fake->email, | ||
| 16 | - 'SignupForm[password]' => $fake->password(19), | ||
| 17 | - ]; | ||
| 18 | - | ||
| 19 | - } | ||
| 20 | - | ||
| 21 | - public function fillCustomerDataForm($fieldData){ | ||
| 22 | - $I = $this; | ||
| 23 | - foreach ($fieldData as $key=>$value) { | ||
| 24 | - $I->fillField($key,$value); | ||
| 25 | - } | ||
| 26 | - | ||
| 27 | - } | ||
| 28 | - | ||
| 29 | - public function submitCustomerDataForm(){ | ||
| 30 | - $I = $this; | ||
| 31 | - $I->click('signup-button'); | ||
| 32 | - } | ||
| 33 | - | ||
| 34 | - | ||
| 35 | - | ||
| 36 | -} | ||
| 37 | \ No newline at end of file | 0 | \ No newline at end of file |
tests/_support/UnitTester.php
| @@ -12,7 +12,7 @@ | @@ -12,7 +12,7 @@ | ||
| 12 | * @method void am($role) | 12 | * @method void am($role) |
| 13 | * @method void lookForwardTo($achieveValue) | 13 | * @method void lookForwardTo($achieveValue) |
| 14 | * @method void comment($description) | 14 | * @method void comment($description) |
| 15 | - * @method \Codeception\Lib\Friend haveFriend($name, $actorClass = null) | 15 | + * @method \Codeception\Lib\Friend haveFriend($name, $actorClass = NULL) |
| 16 | * | 16 | * |
| 17 | * @SuppressWarnings(PHPMD) | 17 | * @SuppressWarnings(PHPMD) |
| 18 | */ | 18 | */ |
tests/_support/_generated/AcceptanceTesterActions.php
tests/acceptance.suite.yml
| @@ -8,6 +8,5 @@ class_name: AcceptanceTester | @@ -8,6 +8,5 @@ class_name: AcceptanceTester | ||
| 8 | modules: | 8 | modules: |
| 9 | enabled: | 9 | enabled: |
| 10 | - PhpBrowser: | 10 | - PhpBrowser: |
| 11 | - url: http://mfp.dev/ | ||
| 12 | -# browser: firefox | 11 | + url: http://localhost/myapp |
| 13 | - \Helper\Acceptance | 12 | - \Helper\Acceptance |
| 14 | \ No newline at end of file | 13 | \ No newline at end of file |
tests/acceptance/FirstTestCept.php deleted
| 1 | -<?php | ||
| 2 | -$I = new AcceptanceTester($scenario); | ||
| 3 | -$I->wantTo('perform actions and see result'); | ||
| 4 | -$I->amOnPage('/'); | ||
| 5 | -$I->canSee('Проектантам'); | ||
| 6 | -$I->click('Вход'); | ||
| 7 | -$I->waitForElement('#modal_form_login', 15); | ||
| 8 | -$I->canSee('Авторизация'); | ||
| 9 | -$I->fillField('#loginform-username','admin'); | ||
| 10 | -$I->fillField('#loginform-password','112233'); | ||
| 11 | -$I->click('.login-button'); | ||
| 12 | -$I->wait(1); | ||
| 13 | -$I->canSee('admin@admin.com'); | ||
| 14 | -$I->wait(1); | ||
| 15 | -$I->amOnPage('/accounts/portfolio'); | ||
| 16 | -$I->wait(1); | ||
| 17 | -$I->click('Добавить'); | ||
| 18 | -$I->wait(1); | ||
| 19 | -$I->attachFile('input[type="file"]', 'ViewIllustrator_2001.jpg'); | ||
| 20 | -$I->fillField('#portfolio-name',''); | ||
| 21 | -$I->click('Добавить', '.input-blocks-wrapper'); | ||
| 22 | -$I->see('Необходимо заполнить «name».','div'); |
tests/codeception.yml deleted
tests/codeception/_output/.gitignore deleted
tests/codeception/backend/.gitignore deleted
tests/codeception/backend/_bootstrap.php deleted
| 1 | -<?php | ||
| 2 | -defined('YII_DEBUG') or define('YII_DEBUG', true); | ||
| 3 | -defined('YII_ENV') or define('YII_ENV', 'test'); | ||
| 4 | - | ||
| 5 | -defined('YII_APP_BASE_PATH') or define('YII_APP_BASE_PATH', dirname(dirname(dirname(__DIR__)))); | ||
| 6 | - | ||
| 7 | -defined('YII_BACKEND_TEST_ENTRY_URL') or define('YII_BACKEND_TEST_ENTRY_URL', parse_url(\Codeception\Configuration::config()['config']['test_entry_url'], PHP_URL_PATH)); | ||
| 8 | -defined('YII_TEST_BACKEND_ENTRY_FILE') or define('YII_TEST_BACKEND_ENTRY_FILE', YII_APP_BASE_PATH . '/backend/web/index-test.php'); | ||
| 9 | - | ||
| 10 | -require_once(YII_APP_BASE_PATH . '/vendor/autoload.php'); | ||
| 11 | -require_once(YII_APP_BASE_PATH . '/vendor/yiisoft/yii2/Yii.php'); | ||
| 12 | -require_once(YII_APP_BASE_PATH . '/common/config/bootstrap.php'); | ||
| 13 | -require_once(YII_APP_BASE_PATH . '/backend/config/bootstrap.php'); | ||
| 14 | - | ||
| 15 | -// set correct script paths | ||
| 16 | - | ||
| 17 | -// the entry script file path for functional and acceptance tests | ||
| 18 | -$_SERVER['SCRIPT_FILENAME'] = YII_TEST_BACKEND_ENTRY_FILE; | ||
| 19 | -$_SERVER['SCRIPT_NAME'] = YII_BACKEND_TEST_ENTRY_URL; | ||
| 20 | -$_SERVER['SERVER_NAME'] = parse_url(\Codeception\Configuration::config()['config']['test_entry_url'], PHP_URL_HOST); | ||
| 21 | -$_SERVER['SERVER_PORT'] = parse_url(\Codeception\Configuration::config()['config']['test_entry_url'], PHP_URL_PORT) ?: '80'; | ||
| 22 | - | ||
| 23 | -Yii::setAlias('@tests', dirname(dirname(__DIR__))); |
tests/codeception/backend/_output/.gitignore deleted
tests/codeception/backend/acceptance.suite.yml deleted
| 1 | -# Codeception Test Suite Configuration | ||
| 2 | - | ||
| 3 | -# suite for acceptance tests. | ||
| 4 | -# perform tests in browser using the Selenium-like tools. | ||
| 5 | -# powered by Mink (http://mink.behat.org). | ||
| 6 | -# (tip: that's what your customer will see). | ||
| 7 | -# (tip: test your ajax and javascript by one of Mink drivers). | ||
| 8 | - | ||
| 9 | -# RUN `build` COMMAND AFTER ADDING/REMOVING MODULES. | ||
| 10 | - | ||
| 11 | -class_name: AcceptanceTester | ||
| 12 | -modules: | ||
| 13 | - enabled: | ||
| 14 | - - PhpBrowser | ||
| 15 | - - tests\codeception\common\_support\FixtureHelper | ||
| 16 | -# you can use WebDriver instead of PhpBrowser to test javascript and ajax. | ||
| 17 | -# This will require you to install selenium. See http://codeception.com/docs/04-AcceptanceTests#Selenium | ||
| 18 | -# "restart" option is used by the WebDriver to start each time per test-file new session and cookies, | ||
| 19 | -# it is useful if you want to login in your app in each test. | ||
| 20 | -# - WebDriver | ||
| 21 | - config: | ||
| 22 | - PhpBrowser: | ||
| 23 | -# PLEASE ADJUST IT TO THE ACTUAL ENTRY POINT WITHOUT PATH INFO | ||
| 24 | - url: http://localhost:8080 | ||
| 25 | -# WebDriver: | ||
| 26 | -# url: http://localhost:8080 | ||
| 27 | -# browser: firefox | ||
| 28 | -# restart: true |
tests/codeception/backend/acceptance/LoginCept.php deleted
| 1 | -<?php | ||
| 2 | - | ||
| 3 | -use tests\codeception\backend\AcceptanceTester; | ||
| 4 | -use tests\codeception\common\_pages\LoginPage; | ||
| 5 | - | ||
| 6 | -/* @var $scenario Codeception\Scenario */ | ||
| 7 | - | ||
| 8 | -$I = new AcceptanceTester($scenario); | ||
| 9 | -$I->wantTo('ensure login page works'); | ||
| 10 | - | ||
| 11 | -$loginPage = LoginPage::openBy($I); | ||
| 12 | - | ||
| 13 | -$I->amGoingTo('submit login form with no data'); | ||
| 14 | -$loginPage->login('', ''); | ||
| 15 | -if (method_exists($I, 'wait')) { | ||
| 16 | - $I->wait(3); // only for selenium | ||
| 17 | -} | ||
| 18 | -$I->expectTo('see validations errors'); | ||
| 19 | -$I->see('Username cannot be blank.', '.help-block'); | ||
| 20 | -$I->see('Password cannot be blank.', '.help-block'); | ||
| 21 | - | ||
| 22 | -$I->amGoingTo('try to login with wrong credentials'); | ||
| 23 | -$I->expectTo('see validations errors'); | ||
| 24 | -$loginPage->login('admin', 'wrong'); | ||
| 25 | -if (method_exists($I, 'wait')) { | ||
| 26 | - $I->wait(3); // only for selenium | ||
| 27 | -} | ||
| 28 | -$I->expectTo('see validations errors'); | ||
| 29 | -$I->see('Incorrect username or password.', '.help-block'); | ||
| 30 | - | ||
| 31 | -$I->amGoingTo('try to login with correct credentials'); | ||
| 32 | -$loginPage->login('erau', 'password_0'); | ||
| 33 | -if (method_exists($I, 'wait')) { | ||
| 34 | - $I->wait(3); // only for selenium | ||
| 35 | -} | ||
| 36 | -$I->expectTo('see that user is logged'); | ||
| 37 | -$I->seeLink('Logout (erau)'); | ||
| 38 | -$I->dontSeeLink('Login'); | ||
| 39 | -$I->dontSeeLink('Signup'); | ||
| 40 | -/** Uncomment if using WebDriver | ||
| 41 | - * $I->click('Logout (erau)'); | ||
| 42 | - * $I->dontSeeLink('Logout (erau)'); | ||
| 43 | - * $I->seeLink('Login'); | ||
| 44 | - */ |
tests/codeception/backend/acceptance/_bootstrap.php deleted
tests/codeception/backend/codeception.yml deleted
| 1 | -namespace: tests\codeception\backend | ||
| 2 | -actor: Tester | ||
| 3 | -paths: | ||
| 4 | - tests: . | ||
| 5 | - log: _output | ||
| 6 | - data: _data | ||
| 7 | - helpers: _support | ||
| 8 | -settings: | ||
| 9 | - bootstrap: _bootstrap.php | ||
| 10 | - suite_class: \PHPUnit_Framework_TestSuite | ||
| 11 | - colors: true | ||
| 12 | - memory_limit: 1024M | ||
| 13 | - log: true | ||
| 14 | -config: | ||
| 15 | - # the entry script URL (with host info) for functional and acceptance tests | ||
| 16 | - # PLEASE ADJUST IT TO THE ACTUAL ENTRY SCRIPT URL | ||
| 17 | - test_entry_url: http://localhost:8080/backend/web/index-test.php |
tests/codeception/backend/functional.suite.yml deleted
| 1 | -# Codeception Test Suite Configuration | ||
| 2 | - | ||
| 3 | -# suite for functional (integration) tests. | ||
| 4 | -# emulate web requests and make application process them. | ||
| 5 | -# (tip: better to use with frameworks). | ||
| 6 | - | ||
| 7 | -# RUN `build` COMMAND AFTER ADDING/REMOVING MODULES. | ||
| 8 | -#basic/web/index.php | ||
| 9 | -class_name: FunctionalTester | ||
| 10 | -modules: | ||
| 11 | - enabled: | ||
| 12 | - - Filesystem | ||
| 13 | - - Yii2 | ||
| 14 | - - tests\codeception\common\_support\FixtureHelper | ||
| 15 | - config: | ||
| 16 | - Yii2: | ||
| 17 | - configFile: '../config/backend/functional.php' |
tests/codeception/backend/functional/LoginCept.php deleted
| 1 | -<?php | ||
| 2 | - | ||
| 3 | -use tests\codeception\backend\FunctionalTester; | ||
| 4 | -use tests\codeception\common\_pages\LoginPage; | ||
| 5 | - | ||
| 6 | -/* @var $scenario Codeception\Scenario */ | ||
| 7 | - | ||
| 8 | -$I = new FunctionalTester($scenario); | ||
| 9 | -$I->wantTo('ensure login page works'); | ||
| 10 | - | ||
| 11 | -$loginPage = LoginPage::openBy($I); | ||
| 12 | - | ||
| 13 | -$I->amGoingTo('submit login form with no data'); | ||
| 14 | -$loginPage->login('', ''); | ||
| 15 | -$I->expectTo('see validations errors'); | ||
| 16 | -$I->see('Username cannot be blank.', '.help-block'); | ||
| 17 | -$I->see('Password cannot be blank.', '.help-block'); | ||
| 18 | - | ||
| 19 | -$I->amGoingTo('try to login with wrong credentials'); | ||
| 20 | -$I->expectTo('see validations errors'); | ||
| 21 | -$loginPage->login('admin', 'wrong'); | ||
| 22 | -$I->expectTo('see validations errors'); | ||
| 23 | -$I->see('Incorrect username or password.', '.help-block'); | ||
| 24 | - | ||
| 25 | -$I->amGoingTo('try to login with correct credentials'); | ||
| 26 | -$loginPage->login('erau', 'password_0'); | ||
| 27 | -$I->expectTo('see that user is logged'); | ||
| 28 | -$I->seeLink('Logout (erau)'); | ||
| 29 | -$I->dontSeeLink('Login'); | ||
| 30 | -$I->dontSeeLink('Signup'); |
tests/codeception/backend/functional/_bootstrap.php deleted
tests/codeception/backend/unit.suite.yml deleted
tests/codeception/backend/unit/DbTestCase.php deleted
tests/codeception/backend/unit/TestCase.php deleted
tests/codeception/backend/unit/_bootstrap.php deleted
tests/codeception/backend/unit/fixtures/data/.gitkeep deleted
tests/codeception/bin/_bootstrap.php deleted
| 1 | -<?php | ||
| 2 | -/** | ||
| 3 | - * Yii console bootstrap file. | ||
| 4 | - * | ||
| 5 | - * @link http://www.yiiframework.com/ | ||
| 6 | - * @copyright Copyright (c) 2008 Yii Software LLC | ||
| 7 | - * @license http://www.yiiframework.com/license/ | ||
| 8 | - */ | ||
| 9 | - | ||
| 10 | -defined('YII_DEBUG') or define('YII_DEBUG', true); | ||
| 11 | -defined('YII_ENV') or define('YII_ENV', 'test'); | ||
| 12 | - | ||
| 13 | -defined('YII_APP_BASE_PATH') or define('YII_APP_BASE_PATH', dirname(dirname(dirname(__DIR__)))); | ||
| 14 | - | ||
| 15 | -require_once(YII_APP_BASE_PATH . '/vendor/autoload.php'); | ||
| 16 | -require_once(YII_APP_BASE_PATH . '/vendor/yiisoft/yii2/Yii.php'); | ||
| 17 | -require_once(YII_APP_BASE_PATH . '/common/config/bootstrap.php'); | ||
| 18 | - | ||
| 19 | -Yii::setAlias('@tests', dirname(dirname(__DIR__))); |
tests/codeception/bin/yii deleted
| 1 | -#!/usr/bin/env php | ||
| 2 | -<?php | ||
| 3 | -/** | ||
| 4 | - * Yii console bootstrap file. | ||
| 5 | - * | ||
| 6 | - * @link http://www.yiiframework.com/ | ||
| 7 | - * @copyright Copyright (c) 2008 Yii Software LLC | ||
| 8 | - * @license http://www.yiiframework.com/license/ | ||
| 9 | - */ | ||
| 10 | - | ||
| 11 | -require_once __DIR__ . '/_bootstrap.php'; | ||
| 12 | - | ||
| 13 | -$config = yii\helpers\ArrayHelper::merge( | ||
| 14 | - require(YII_APP_BASE_PATH . '/common/config/main.php'), | ||
| 15 | - require(YII_APP_BASE_PATH . '/common/config/main-local.php'), | ||
| 16 | - require(YII_APP_BASE_PATH . '/console/config/main.php'), | ||
| 17 | - require(YII_APP_BASE_PATH . '/console/config/main-local.php'), | ||
| 18 | - require(dirname(__DIR__) . '/config/config.php') | ||
| 19 | -); | ||
| 20 | - | ||
| 21 | -$application = new yii\console\Application($config); | ||
| 22 | -$exitCode = $application->run(); | ||
| 23 | -exit($exitCode); |
tests/codeception/bin/yii.bat deleted
| 1 | -@echo off | ||
| 2 | - | ||
| 3 | -rem ------------------------------------------------------------- | ||
| 4 | -rem Yii command line bootstrap script for Windows. | ||
| 5 | -rem | ||
| 6 | -rem @author Qiang Xue <qiang.xue@gmail.com> | ||
| 7 | -rem @link http://www.yiiframework.com/ | ||
| 8 | -rem @copyright Copyright (c) 2008 Yii Software LLC | ||
| 9 | -rem @license http://www.yiiframework.com/license/ | ||
| 10 | -rem ------------------------------------------------------------- | ||
| 11 | - | ||
| 12 | -@setlocal | ||
| 13 | - | ||
| 14 | -set YII_PATH=%~dp0 | ||
| 15 | - | ||
| 16 | -if "%PHP_COMMAND%" == "" set PHP_COMMAND=php.exe | ||
| 17 | - | ||
| 18 | -"%PHP_COMMAND%" "%YII_PATH%yii" %* | ||
| 19 | - | ||
| 20 | -@endlocal |
tests/codeception/common/.gitignore deleted
tests/codeception/common/_bootstrap.php deleted
| 1 | -<?php | ||
| 2 | -defined('YII_DEBUG') or define('YII_DEBUG', true); | ||
| 3 | -defined('YII_ENV') or define('YII_ENV', 'test'); | ||
| 4 | - | ||
| 5 | -defined('YII_APP_BASE_PATH') or define('YII_APP_BASE_PATH', dirname(dirname(dirname(__DIR__)))); | ||
| 6 | - | ||
| 7 | -require_once(YII_APP_BASE_PATH . '/vendor/autoload.php'); | ||
| 8 | -require_once(YII_APP_BASE_PATH . '/vendor/yiisoft/yii2/Yii.php'); | ||
| 9 | -require_once(YII_APP_BASE_PATH . '/common/config/bootstrap.php'); | ||
| 10 | - | ||
| 11 | -// set correct script paths | ||
| 12 | -$_SERVER['SERVER_NAME'] = 'localhost'; | ||
| 13 | -$_SERVER['SERVER_PORT'] = '80'; | ||
| 14 | - | ||
| 15 | -Yii::setAlias('@tests', dirname(dirname(__DIR__))); |
tests/codeception/common/_output/.gitignore deleted
tests/codeception/common/_pages/LoginPage.php deleted
| 1 | -<?php | ||
| 2 | - | ||
| 3 | -namespace tests\codeception\common\_pages; | ||
| 4 | - | ||
| 5 | -use yii\codeception\BasePage; | ||
| 6 | - | ||
| 7 | -/** | ||
| 8 | - * Represents loging page | ||
| 9 | - * @property \codeception_frontend\AcceptanceTester|\codeception_frontend\FunctionalTester|\codeception_backend\AcceptanceTester|\codeception_backend\FunctionalTester $actor | ||
| 10 | - */ | ||
| 11 | -class LoginPage extends BasePage | ||
| 12 | -{ | ||
| 13 | - public $route = 'site/login'; | ||
| 14 | - | ||
| 15 | - /** | ||
| 16 | - * @param string $username | ||
| 17 | - * @param string $password | ||
| 18 | - */ | ||
| 19 | - public function login($username, $password) | ||
| 20 | - { | ||
| 21 | - $this->actor->fillField('input[name="LoginForm[username]"]', $username); | ||
| 22 | - $this->actor->fillField('input[name="LoginForm[password]"]', $password); | ||
| 23 | - $this->actor->click('login-button'); | ||
| 24 | - } | ||
| 25 | -} |
tests/codeception/common/_support/FixtureHelper.php deleted
| 1 | -<?php | ||
| 2 | - | ||
| 3 | -namespace tests\codeception\common\_support; | ||
| 4 | - | ||
| 5 | -use tests\codeception\common\fixtures\UserFixture; | ||
| 6 | -use Codeception\Module; | ||
| 7 | -use yii\test\FixtureTrait; | ||
| 8 | -use yii\test\InitDbFixture; | ||
| 9 | - | ||
| 10 | -/** | ||
| 11 | - * This helper is used to populate the database with needed fixtures before any tests are run. | ||
| 12 | - * In this example, the database is populated with the demo login user, which is used in acceptance | ||
| 13 | - * and functional tests. All fixtures will be loaded before the suite is started and unloaded after it | ||
| 14 | - * completes. | ||
| 15 | - */ | ||
| 16 | -class FixtureHelper extends Module | ||
| 17 | -{ | ||
| 18 | - | ||
| 19 | - /** | ||
| 20 | - * Redeclare visibility because codeception includes all public methods that do not start with "_" | ||
| 21 | - * and are not excluded by module settings, in actor class. | ||
| 22 | - */ | ||
| 23 | - use FixtureTrait { | ||
| 24 | - loadFixtures as protected; | ||
| 25 | - fixtures as protected; | ||
| 26 | - globalFixtures as protected; | ||
| 27 | - unloadFixtures as protected; | ||
| 28 | - getFixtures as protected; | ||
| 29 | - getFixture as protected; | ||
| 30 | - } | ||
| 31 | - | ||
| 32 | - /** | ||
| 33 | - * Method called before any suite tests run. Loads User fixture login user | ||
| 34 | - * to use in acceptance and functional tests. | ||
| 35 | - * @param array $settings | ||
| 36 | - */ | ||
| 37 | - public function _beforeSuite($settings = []) | ||
| 38 | - { | ||
| 39 | - $this->loadFixtures(); | ||
| 40 | - } | ||
| 41 | - | ||
| 42 | - /** | ||
| 43 | - * Method is called after all suite tests run | ||
| 44 | - */ | ||
| 45 | - public function _afterSuite() | ||
| 46 | - { | ||
| 47 | - $this->unloadFixtures(); | ||
| 48 | - } | ||
| 49 | - | ||
| 50 | - /** | ||
| 51 | - * @inheritdoc | ||
| 52 | - */ | ||
| 53 | - public function globalFixtures() | ||
| 54 | - { | ||
| 55 | - return [ | ||
| 56 | - InitDbFixture::className(), | ||
| 57 | - ]; | ||
| 58 | - } | ||
| 59 | - | ||
| 60 | - /** | ||
| 61 | - * @inheritdoc | ||
| 62 | - */ | ||
| 63 | - public function fixtures() | ||
| 64 | - { | ||
| 65 | - return [ | ||
| 66 | - 'user' => [ | ||
| 67 | - 'class' => UserFixture::className(), | ||
| 68 | - 'dataFile' => '@tests/codeception/common/fixtures/data/init_login.php', | ||
| 69 | - ], | ||
| 70 | - ]; | ||
| 71 | - } | ||
| 72 | -} |
tests/codeception/common/codeception.yml deleted
tests/codeception/common/fixtures/UserFixture.php deleted
tests/codeception/common/fixtures/data/init_login.php deleted
| 1 | -<?php | ||
| 2 | - | ||
| 3 | -return [ | ||
| 4 | - [ | ||
| 5 | - 'username' => 'erau', | ||
| 6 | - 'auth_key' => 'tUu1qHcde0diwUol3xeI-18MuHkkprQI', | ||
| 7 | - // password_0 | ||
| 8 | - 'password_hash' => '$2y$13$nJ1WDlBaGcbCdbNC5.5l4.sgy.OMEKCqtDQOdQ2OWpgiKRWYyzzne', | ||
| 9 | - 'password_reset_token' => 'RkD_Jw0_8HEedzLk7MM-ZKEFfYR7VbMr_1392559490', | ||
| 10 | - 'created_at' => '1392559490', | ||
| 11 | - 'updated_at' => '1392559490', | ||
| 12 | - 'email' => 'sfriesen@jenkins.info', | ||
| 13 | - ], | ||
| 14 | -]; |
tests/codeception/common/templates/fixtures/user.php deleted
| 1 | -<?php | ||
| 2 | -/** | ||
| 3 | - * @var $faker \Faker\Generator | ||
| 4 | - * @var $index integer | ||
| 5 | - */ | ||
| 6 | - | ||
| 7 | -$security = Yii::$app->getSecurity(); | ||
| 8 | - | ||
| 9 | -return [ | ||
| 10 | - 'username' => $faker->userName, | ||
| 11 | - 'email' => $faker->email, | ||
| 12 | - 'auth_key' => $security->generateRandomString(), | ||
| 13 | - 'password_hash' => $security->generatePasswordHash('password_' . $index), | ||
| 14 | - 'password_reset_token' => $security->generateRandomString() . '_' . time(), | ||
| 15 | - 'created_at' => time(), | ||
| 16 | - 'updated_at' => time(), | ||
| 17 | -]; |
tests/codeception/common/unit.suite.yml deleted
tests/codeception/common/unit/DbTestCase.php deleted
tests/codeception/common/unit/TestCase.php deleted
tests/codeception/common/unit/_bootstrap.php deleted
tests/codeception/common/unit/fixtures/data/models/user.php deleted
| 1 | -<?php | ||
| 2 | - | ||
| 3 | -return [ | ||
| 4 | - [ | ||
| 5 | - 'username' => 'bayer.hudson', | ||
| 6 | - 'auth_key' => 'HP187Mvq7Mmm3CTU80dLkGmni_FUH_lR', | ||
| 7 | - //password_0 | ||
| 8 | - 'password_hash' => '$2y$13$EjaPFBnZOQsHdGuHI.xvhuDp1fHpo8hKRSk6yshqa9c5EG8s3C3lO', | ||
| 9 | - 'password_reset_token' => 'ExzkCOaYc1L8IOBs4wdTGGbgNiG3Wz1I_1402312317', | ||
| 10 | - 'created_at' => '1402312317', | ||
| 11 | - 'updated_at' => '1402312317', | ||
| 12 | - 'email' => 'nicole.paucek@schultz.info', | ||
| 13 | - ], | ||
| 14 | -]; |
tests/codeception/common/unit/models/LoginFormTest.php deleted
| 1 | -<?php | ||
| 2 | - | ||
| 3 | -namespace tests\codeception\common\unit\models; | ||
| 4 | - | ||
| 5 | -use Yii; | ||
| 6 | -use tests\codeception\common\unit\DbTestCase; | ||
| 7 | -use Codeception\Specify; | ||
| 8 | -use common\models\LoginForm; | ||
| 9 | -use tests\codeception\common\fixtures\UserFixture; | ||
| 10 | - | ||
| 11 | -/** | ||
| 12 | - * Login form test | ||
| 13 | - */ | ||
| 14 | -class LoginFormTest extends DbTestCase | ||
| 15 | -{ | ||
| 16 | - | ||
| 17 | - use Specify; | ||
| 18 | - | ||
| 19 | - public function setUp() | ||
| 20 | - { | ||
| 21 | - parent::setUp(); | ||
| 22 | - | ||
| 23 | - Yii::configure(Yii::$app, [ | ||
| 24 | - 'components' => [ | ||
| 25 | - 'user' => [ | ||
| 26 | - 'class' => 'yii\web\User', | ||
| 27 | - 'identityClass' => 'common\models\User', | ||
| 28 | - ], | ||
| 29 | - ], | ||
| 30 | - ]); | ||
| 31 | - } | ||
| 32 | - | ||
| 33 | - protected function tearDown() | ||
| 34 | - { | ||
| 35 | - Yii::$app->user->logout(); | ||
| 36 | - parent::tearDown(); | ||
| 37 | - } | ||
| 38 | - | ||
| 39 | - public function testLoginNoUser() | ||
| 40 | - { | ||
| 41 | - $model = new LoginForm([ | ||
| 42 | - 'username' => 'not_existing_username', | ||
| 43 | - 'password' => 'not_existing_password', | ||
| 44 | - ]); | ||
| 45 | - | ||
| 46 | - $this->specify('user should not be able to login, when there is no identity', function () use ($model) { | ||
| 47 | - expect('model should not login user', $model->login())->false(); | ||
| 48 | - expect('user should not be logged in', Yii::$app->user->isGuest)->true(); | ||
| 49 | - }); | ||
| 50 | - } | ||
| 51 | - | ||
| 52 | - public function testLoginWrongPassword() | ||
| 53 | - { | ||
| 54 | - $model = new LoginForm([ | ||
| 55 | - 'username' => 'bayer.hudson', | ||
| 56 | - 'password' => 'wrong_password', | ||
| 57 | - ]); | ||
| 58 | - | ||
| 59 | - $this->specify('user should not be able to login with wrong password', function () use ($model) { | ||
| 60 | - expect('model should not login user', $model->login())->false(); | ||
| 61 | - expect('error message should be set', $model->errors)->hasKey('password'); | ||
| 62 | - expect('user should not be logged in', Yii::$app->user->isGuest)->true(); | ||
| 63 | - }); | ||
| 64 | - } | ||
| 65 | - | ||
| 66 | - public function testLoginCorrect() | ||
| 67 | - { | ||
| 68 | - | ||
| 69 | - $model = new LoginForm([ | ||
| 70 | - 'username' => 'bayer.hudson', | ||
| 71 | - 'password' => 'password_0', | ||
| 72 | - ]); | ||
| 73 | - | ||
| 74 | - $this->specify('user should be able to login with correct credentials', function () use ($model) { | ||
| 75 | - expect('model should login user', $model->login())->true(); | ||
| 76 | - expect('error message should not be set', $model->errors)->hasntKey('password'); | ||
| 77 | - expect('user should be logged in', Yii::$app->user->isGuest)->false(); | ||
| 78 | - }); | ||
| 79 | - } | ||
| 80 | - | ||
| 81 | - /** | ||
| 82 | - * @inheritdoc | ||
| 83 | - */ | ||
| 84 | - public function fixtures() | ||
| 85 | - { | ||
| 86 | - return [ | ||
| 87 | - 'user' => [ | ||
| 88 | - 'class' => UserFixture::className(), | ||
| 89 | - 'dataFile' => '@tests/codeception/common/unit/fixtures/data/models/user.php' | ||
| 90 | - ], | ||
| 91 | - ]; | ||
| 92 | - } | ||
| 93 | -} |
tests/codeception/config/acceptance.php deleted
tests/codeception/config/backend/acceptance.php deleted
| 1 | -<?php | ||
| 2 | -defined('YII_APP_BASE_PATH') or define('YII_APP_BASE_PATH', dirname(dirname(dirname(dirname(__DIR__))))); | ||
| 3 | - | ||
| 4 | -/** | ||
| 5 | - * Application configuration for backend acceptance tests | ||
| 6 | - */ | ||
| 7 | -return yii\helpers\ArrayHelper::merge( | ||
| 8 | - require(YII_APP_BASE_PATH . '/common/config/main.php'), | ||
| 9 | - require(YII_APP_BASE_PATH . '/common/config/main-local.php'), | ||
| 10 | - require(YII_APP_BASE_PATH . '/backend/config/main.php'), | ||
| 11 | - require(YII_APP_BASE_PATH . '/backend/config/main-local.php'), | ||
| 12 | - require(dirname(__DIR__) . '/config.php'), | ||
| 13 | - require(dirname(__DIR__) . '/acceptance.php'), | ||
| 14 | - require(__DIR__ . '/config.php'), | ||
| 15 | - [ | ||
| 16 | - ] | ||
| 17 | -); |
tests/codeception/config/backend/config.php deleted
tests/codeception/config/backend/functional.php deleted
| 1 | -<?php | ||
| 2 | -$_SERVER['SCRIPT_FILENAME'] = YII_TEST_BACKEND_ENTRY_FILE; | ||
| 3 | -$_SERVER['SCRIPT_NAME'] = YII_BACKEND_TEST_ENTRY_URL; | ||
| 4 | - | ||
| 5 | -/** | ||
| 6 | - * Application configuration for backend functional tests | ||
| 7 | - */ | ||
| 8 | -return yii\helpers\ArrayHelper::merge( | ||
| 9 | - require(YII_APP_BASE_PATH . '/common/config/main.php'), | ||
| 10 | - require(YII_APP_BASE_PATH . '/common/config/main-local.php'), | ||
| 11 | - require(YII_APP_BASE_PATH . '/backend/config/main.php'), | ||
| 12 | - require(YII_APP_BASE_PATH . '/backend/config/main-local.php'), | ||
| 13 | - require(dirname(__DIR__) . '/config.php'), | ||
| 14 | - require(dirname(__DIR__) . '/functional.php'), | ||
| 15 | - require(__DIR__ . '/config.php'), | ||
| 16 | - [ | ||
| 17 | - ] | ||
| 18 | -); |
tests/codeception/config/backend/unit.php deleted
| 1 | -<?php | ||
| 2 | - | ||
| 3 | -/** | ||
| 4 | - * Application configuration for backend unit tests | ||
| 5 | - */ | ||
| 6 | -return yii\helpers\ArrayHelper::merge( | ||
| 7 | - require(YII_APP_BASE_PATH . '/common/config/main.php'), | ||
| 8 | - require(YII_APP_BASE_PATH . '/common/config/main-local.php'), | ||
| 9 | - require(YII_APP_BASE_PATH . '/backend/config/main.php'), | ||
| 10 | - require(YII_APP_BASE_PATH . '/backend/config/main-local.php'), | ||
| 11 | - require(dirname(__DIR__) . '/config.php'), | ||
| 12 | - require(dirname(__DIR__) . '/unit.php'), | ||
| 13 | - require(__DIR__ . '/config.php'), | ||
| 14 | - [ | ||
| 15 | - ] | ||
| 16 | -); |
tests/codeception/config/common/unit.php deleted
| 1 | -<?php | ||
| 2 | -/** | ||
| 3 | - * Application config for common unit tests | ||
| 4 | - */ | ||
| 5 | -return yii\helpers\ArrayHelper::merge( | ||
| 6 | - require(YII_APP_BASE_PATH . '/common/config/main.php'), | ||
| 7 | - require(YII_APP_BASE_PATH . '/common/config/main-local.php'), | ||
| 8 | - require(dirname(__DIR__) . '/config.php'), | ||
| 9 | - require(dirname(__DIR__) . '/unit.php'), | ||
| 10 | - [ | ||
| 11 | - 'id' => 'app-common', | ||
| 12 | - 'basePath' => dirname(__DIR__), | ||
| 13 | - ] | ||
| 14 | -); |
tests/codeception/config/config.php deleted
| 1 | -<?php | ||
| 2 | -/** | ||
| 3 | - * Application configuration shared by all applications and test types | ||
| 4 | - */ | ||
| 5 | -return [ | ||
| 6 | - 'language' => 'en-US', | ||
| 7 | - 'controllerMap' => [ | ||
| 8 | - 'fixture' => [ | ||
| 9 | - 'class' => 'yii\faker\FixtureController', | ||
| 10 | - 'fixtureDataPath' => '@tests/codeception/common/fixtures/data', | ||
| 11 | - 'templatePath' => '@tests/codeception/common/templates/fixtures', | ||
| 12 | - 'namespace' => 'tests\codeception\common\fixtures', | ||
| 13 | - ], | ||
| 14 | - ], | ||
| 15 | - 'components' => [ | ||
| 16 | - 'db' => [ | ||
| 17 | - 'dsn' => 'mysql:host=localhost;dbname=yii2_advanced_tests', | ||
| 18 | - ], | ||
| 19 | - 'mailer' => [ | ||
| 20 | - 'useFileTransport' => true, | ||
| 21 | - ], | ||
| 22 | - 'urlManager' => [ | ||
| 23 | - 'showScriptName' => true, | ||
| 24 | - ], | ||
| 25 | - ], | ||
| 26 | -]; |
tests/codeception/config/console/unit.php deleted
| 1 | -<?php | ||
| 2 | -/** | ||
| 3 | - * Application configuration for console unit tests | ||
| 4 | - */ | ||
| 5 | -return yii\helpers\ArrayHelper::merge( | ||
| 6 | - require(YII_APP_BASE_PATH . '/common/config/main.php'), | ||
| 7 | - require(YII_APP_BASE_PATH . '/common/config/main-local.php'), | ||
| 8 | - require(YII_APP_BASE_PATH . '/console/config/main.php'), | ||
| 9 | - require(YII_APP_BASE_PATH . '/console/config/main-local.php'), | ||
| 10 | - require(dirname(__DIR__) . '/config.php'), | ||
| 11 | - require(dirname(__DIR__) . '/unit.php'), | ||
| 12 | - [ | ||
| 13 | - ] | ||
| 14 | -); |
tests/codeception/config/frontend/acceptance.php deleted
| 1 | -<?php | ||
| 2 | -defined('YII_APP_BASE_PATH') or define('YII_APP_BASE_PATH', dirname(dirname(dirname(dirname(__DIR__))))); | ||
| 3 | - | ||
| 4 | -/** | ||
| 5 | - * Application configuration for frontend acceptance tests | ||
| 6 | - */ | ||
| 7 | -return yii\helpers\ArrayHelper::merge( | ||
| 8 | - require(YII_APP_BASE_PATH . '/common/config/main.php'), | ||
| 9 | - require(YII_APP_BASE_PATH . '/common/config/main-local.php'), | ||
| 10 | - require(YII_APP_BASE_PATH . '/frontend/config/main.php'), | ||
| 11 | - require(YII_APP_BASE_PATH . '/frontend/config/main-local.php'), | ||
| 12 | - require(dirname(__DIR__) . '/config.php'), | ||
| 13 | - require(dirname(__DIR__) . '/acceptance.php'), | ||
| 14 | - require(__DIR__ . '/config.php'), | ||
| 15 | - [ | ||
| 16 | - ] | ||
| 17 | -); |
tests/codeception/config/frontend/config.php deleted
tests/codeception/config/frontend/functional.php deleted
| 1 | -<?php | ||
| 2 | -$_SERVER['SCRIPT_FILENAME'] = FRONTEND_ENTRY_FILE; | ||
| 3 | -$_SERVER['SCRIPT_NAME'] = FRONTEND_ENTRY_URL; | ||
| 4 | - | ||
| 5 | -/** | ||
| 6 | - * Application configuration for frontend functional tests | ||
| 7 | - */ | ||
| 8 | -return yii\helpers\ArrayHelper::merge( | ||
| 9 | - require(YII_APP_BASE_PATH . '/common/config/main.php'), | ||
| 10 | - require(YII_APP_BASE_PATH . '/common/config/main-local.php'), | ||
| 11 | - require(YII_APP_BASE_PATH . '/frontend/config/main.php'), | ||
| 12 | - require(YII_APP_BASE_PATH . '/frontend/config/main-local.php'), | ||
| 13 | - require(dirname(__DIR__) . '/config.php'), | ||
| 14 | - require(dirname(__DIR__) . '/functional.php'), | ||
| 15 | - require(__DIR__ . '/config.php'), | ||
| 16 | - [ | ||
| 17 | - ] | ||
| 18 | -); |
tests/codeception/config/frontend/unit.php deleted
| 1 | -<?php | ||
| 2 | - | ||
| 3 | -/** | ||
| 4 | - * Application configuration for frontend unit tests | ||
| 5 | - */ | ||
| 6 | -return yii\helpers\ArrayHelper::merge( | ||
| 7 | - require(YII_APP_BASE_PATH . '/common/config/main.php'), | ||
| 8 | - require(YII_APP_BASE_PATH . '/common/config/main-local.php'), | ||
| 9 | - require(YII_APP_BASE_PATH . '/frontend/config/main.php'), | ||
| 10 | - require(YII_APP_BASE_PATH . '/frontend/config/main-local.php'), | ||
| 11 | - require(dirname(__DIR__) . '/config.php'), | ||
| 12 | - require(dirname(__DIR__) . '/unit.php'), | ||
| 13 | - require(__DIR__ . '/config.php'), | ||
| 14 | - [ | ||
| 15 | - ] | ||
| 16 | -); |
tests/codeception/config/functional.php deleted
| 1 | -<?php | ||
| 2 | -/** | ||
| 3 | - * Application configuration shared by all applications functional tests | ||
| 4 | - */ | ||
| 5 | -return [ | ||
| 6 | - 'components' => [ | ||
| 7 | - 'request' => [ | ||
| 8 | - // it's not recommended to run functional tests with CSRF validation enabled | ||
| 9 | - 'enableCsrfValidation' => false, | ||
| 10 | - // but if you absolutely need it set cookie domain to localhost | ||
| 11 | - /* | ||
| 12 | - 'csrfCookie' => [ | ||
| 13 | - 'domain' => 'localhost', | ||
| 14 | - ], | ||
| 15 | - */ | ||
| 16 | - ], | ||
| 17 | - ], | ||
| 18 | -]; | ||
| 19 | \ No newline at end of file | 0 | \ No newline at end of file |
tests/codeception/config/unit.php deleted
tests/codeception/console/.gitignore deleted
tests/codeception/console/_bootstrap.php deleted
| 1 | -<?php | ||
| 2 | -defined('YII_DEBUG') or define('YII_DEBUG', true); | ||
| 3 | -defined('YII_ENV') or define('YII_ENV', 'test'); | ||
| 4 | - | ||
| 5 | -defined('YII_APP_BASE_PATH') or define('YII_APP_BASE_PATH', dirname(dirname(dirname(__DIR__)))); | ||
| 6 | - | ||
| 7 | -require_once(YII_APP_BASE_PATH . '/vendor/autoload.php'); | ||
| 8 | -require_once(YII_APP_BASE_PATH . '/vendor/yiisoft/yii2/Yii.php'); | ||
| 9 | -require_once(YII_APP_BASE_PATH . '/common/config/bootstrap.php'); | ||
| 10 | -require_once(YII_APP_BASE_PATH . '/console/config/bootstrap.php'); | ||
| 11 | - | ||
| 12 | -// set correct script paths | ||
| 13 | -$_SERVER['SERVER_NAME'] = 'localhost'; | ||
| 14 | -$_SERVER['SERVER_PORT'] = '80'; | ||
| 15 | - | ||
| 16 | -Yii::setAlias('@tests', dirname(dirname(__DIR__))); |
tests/codeception/console/_output/.gitignore deleted
tests/codeception/console/codeception.yml deleted
tests/codeception/console/unit.suite.yml deleted
tests/codeception/console/unit/DbTestCase.php deleted
tests/codeception/console/unit/TestCase.php deleted
tests/codeception/console/unit/_bootstrap.php deleted
tests/codeception/console/unit/fixtures/data/.gitkeep deleted
tests/codeception/frontend/.gitignore deleted
tests/codeception/frontend/_bootstrap.php deleted
| 1 | -<?php | ||
| 2 | -defined('YII_DEBUG') or define('YII_DEBUG', true); | ||
| 3 | -defined('YII_ENV') or define('YII_ENV', 'test'); | ||
| 4 | - | ||
| 5 | -defined('YII_APP_BASE_PATH') or define('YII_APP_BASE_PATH', dirname(dirname(dirname(__DIR__)))); | ||
| 6 | - | ||
| 7 | -defined('FRONTEND_ENTRY_URL') or define('FRONTEND_ENTRY_URL', parse_url(\Codeception\Configuration::config()['config']['test_entry_url'], PHP_URL_PATH)); | ||
| 8 | -defined('FRONTEND_ENTRY_FILE') or define('FRONTEND_ENTRY_FILE', YII_APP_BASE_PATH . '/frontend/web/index-test.php'); | ||
| 9 | - | ||
| 10 | -require_once(YII_APP_BASE_PATH . '/vendor/autoload.php'); | ||
| 11 | -require_once(YII_APP_BASE_PATH . '/vendor/yiisoft/yii2/Yii.php'); | ||
| 12 | -require_once(YII_APP_BASE_PATH . '/common/config/bootstrap.php'); | ||
| 13 | -require_once(YII_APP_BASE_PATH . '/frontend/config/bootstrap.php'); | ||
| 14 | - | ||
| 15 | -// set correct script paths | ||
| 16 | - | ||
| 17 | -// the entry script file path for functional and acceptance tests | ||
| 18 | -$_SERVER['SCRIPT_FILENAME'] = FRONTEND_ENTRY_FILE; | ||
| 19 | -$_SERVER['SCRIPT_NAME'] = FRONTEND_ENTRY_URL; | ||
| 20 | -$_SERVER['SERVER_NAME'] = parse_url(\Codeception\Configuration::config()['config']['test_entry_url'], PHP_URL_HOST); | ||
| 21 | -$_SERVER['SERVER_PORT'] = parse_url(\Codeception\Configuration::config()['config']['test_entry_url'], PHP_URL_PORT) ?: '80'; | ||
| 22 | - | ||
| 23 | -Yii::setAlias('@tests', dirname(dirname(__DIR__))); |
tests/codeception/frontend/_output/.gitignore deleted
tests/codeception/frontend/_pages/AboutPage.php deleted
| 1 | -<?php | ||
| 2 | - | ||
| 3 | -namespace tests\codeception\frontend\_pages; | ||
| 4 | - | ||
| 5 | -use yii\codeception\BasePage; | ||
| 6 | - | ||
| 7 | -/** | ||
| 8 | - * Represents about page | ||
| 9 | - * @property \codeception_frontend\AcceptanceTester|\codeception_frontend\FunctionalTester $actor | ||
| 10 | - */ | ||
| 11 | -class AboutPage extends BasePage | ||
| 12 | -{ | ||
| 13 | - public $route = 'site/about'; | ||
| 14 | -} |
tests/codeception/frontend/_pages/ContactPage.php deleted
| 1 | -<?php | ||
| 2 | - | ||
| 3 | -namespace tests\codeception\frontend\_pages; | ||
| 4 | - | ||
| 5 | -use yii\codeception\BasePage; | ||
| 6 | - | ||
| 7 | -/** | ||
| 8 | - * Represents contact page | ||
| 9 | - * @property \codeception_frontend\AcceptanceTester|\codeception_frontend\FunctionalTester $actor | ||
| 10 | - */ | ||
| 11 | -class ContactPage extends BasePage | ||
| 12 | -{ | ||
| 13 | - public $route = 'site/contact'; | ||
| 14 | - | ||
| 15 | - /** | ||
| 16 | - * @param array $contactData | ||
| 17 | - */ | ||
| 18 | - public function submit(array $contactData) | ||
| 19 | - { | ||
| 20 | - foreach ($contactData as $field => $value) { | ||
| 21 | - $inputType = $field === 'body' ? 'textarea' : 'input'; | ||
| 22 | - $this->actor->fillField($inputType . '[name="ContactForm[' . $field . ']"]', $value); | ||
| 23 | - } | ||
| 24 | - $this->actor->click('contact-button'); | ||
| 25 | - } | ||
| 26 | -} |
tests/codeception/frontend/_pages/SignupPage.php deleted
| 1 | -<?php | ||
| 2 | - | ||
| 3 | -namespace tests\codeception\frontend\_pages; | ||
| 4 | - | ||
| 5 | -use \yii\codeception\BasePage; | ||
| 6 | - | ||
| 7 | -/** | ||
| 8 | - * Represents signup page | ||
| 9 | - * @property \codeception_frontend\AcceptanceTester|\codeception_frontend\FunctionalTester $actor | ||
| 10 | - */ | ||
| 11 | -class SignupPage extends BasePage | ||
| 12 | -{ | ||
| 13 | - | ||
| 14 | - public $route = 'site/signup'; | ||
| 15 | - | ||
| 16 | - /** | ||
| 17 | - * @param array $signupData | ||
| 18 | - */ | ||
| 19 | - public function submit(array $signupData) | ||
| 20 | - { | ||
| 21 | - foreach ($signupData as $field => $value) { | ||
| 22 | - $inputType = $field === 'body' ? 'textarea' : 'input'; | ||
| 23 | - $this->actor->fillField($inputType . '[name="SignupForm[' . $field . ']"]', $value); | ||
| 24 | - } | ||
| 25 | - $this->actor->click('signup-button'); | ||
| 26 | - } | ||
| 27 | -} |
tests/codeception/frontend/acceptance.suite.yml deleted
| 1 | -# Codeception Test Suite Configuration | ||
| 2 | - | ||
| 3 | -# suite for acceptance tests. | ||
| 4 | -# perform tests in browser using the Selenium-like tools. | ||
| 5 | -# powered by Mink (http://mink.behat.org). | ||
| 6 | -# (tip: that's what your customer will see). | ||
| 7 | -# (tip: test your ajax and javascript by one of Mink drivers). | ||
| 8 | - | ||
| 9 | -# RUN `build` COMMAND AFTER ADDING/REMOVING MODULES. | ||
| 10 | - | ||
| 11 | -class_name: AcceptanceTester | ||
| 12 | -modules: | ||
| 13 | - enabled: | ||
| 14 | - - PhpBrowser | ||
| 15 | - - tests\codeception\common\_support\FixtureHelper | ||
| 16 | -# you can use WebDriver instead of PhpBrowser to test javascript and ajax. | ||
| 17 | -# This will require you to install selenium. See http://codeception.com/docs/04-AcceptanceTests#Selenium | ||
| 18 | -# "restart" option is used by the WebDriver to start each time per test-file new session and cookies, | ||
| 19 | -# it is useful if you want to login in your app in each test. | ||
| 20 | -# - WebDriver | ||
| 21 | - config: | ||
| 22 | - PhpBrowser: | ||
| 23 | -# PLEASE ADJUST IT TO THE ACTUAL ENTRY POINT WITHOUT PATH INFO | ||
| 24 | - url: http://localhost:8080 | ||
| 25 | -# WebDriver: | ||
| 26 | -# url: http://localhost:8080 | ||
| 27 | -# browser: firefox | ||
| 28 | -# restart: true |
tests/codeception/frontend/acceptance/AboutCept.php deleted
| 1 | -<?php | ||
| 2 | -use tests\codeception\frontend\AcceptanceTester; | ||
| 3 | -use tests\codeception\frontend\_pages\AboutPage; | ||
| 4 | - | ||
| 5 | -/* @var $scenario Codeception\Scenario */ | ||
| 6 | - | ||
| 7 | -$I = new AcceptanceTester($scenario); | ||
| 8 | -$I->wantTo('ensure that about works'); | ||
| 9 | -AboutPage::openBy($I); | ||
| 10 | -$I->see('About', 'h1'); |
tests/codeception/frontend/acceptance/ContactCept.php deleted
| 1 | -<?php | ||
| 2 | -use tests\codeception\frontend\AcceptanceTester; | ||
| 3 | -use tests\codeception\frontend\_pages\ContactPage; | ||
| 4 | - | ||
| 5 | -/* @var $scenario Codeception\Scenario */ | ||
| 6 | - | ||
| 7 | -$I = new AcceptanceTester($scenario); | ||
| 8 | -$I->wantTo('ensure that contact works'); | ||
| 9 | - | ||
| 10 | -$contactPage = ContactPage::openBy($I); | ||
| 11 | - | ||
| 12 | -$I->see('Contact', 'h1'); | ||
| 13 | - | ||
| 14 | -$I->amGoingTo('submit contact form with no data'); | ||
| 15 | -$contactPage->submit([]); | ||
| 16 | -if (method_exists($I, 'wait')) { | ||
| 17 | - $I->wait(3); // only for selenium | ||
| 18 | -} | ||
| 19 | -$I->expectTo('see validations errors'); | ||
| 20 | -$I->see('Contact', 'h1'); | ||
| 21 | -$I->see('Name cannot be blank', '.help-block'); | ||
| 22 | -$I->see('Email cannot be blank', '.help-block'); | ||
| 23 | -$I->see('Subject cannot be blank', '.help-block'); | ||
| 24 | -$I->see('Body cannot be blank', '.help-block'); | ||
| 25 | -$I->see('The verification code is incorrect', '.help-block'); | ||
| 26 | - | ||
| 27 | -$I->amGoingTo('submit contact form with not correct email'); | ||
| 28 | -$contactPage->submit([ | ||
| 29 | - 'name' => 'tester', | ||
| 30 | - 'email' => 'tester.email', | ||
| 31 | - 'subject' => 'test subject', | ||
| 32 | - 'body' => 'test content', | ||
| 33 | - 'verifyCode' => 'testme', | ||
| 34 | -]); | ||
| 35 | -if (method_exists($I, 'wait')) { | ||
| 36 | - $I->wait(3); // only for selenium | ||
| 37 | -} | ||
| 38 | -$I->expectTo('see that email adress is wrong'); | ||
| 39 | -$I->dontSee('Name cannot be blank', '.help-block'); | ||
| 40 | -$I->see('Email is not a valid email address.', '.help-block'); | ||
| 41 | -$I->dontSee('Subject cannot be blank', '.help-block'); | ||
| 42 | -$I->dontSee('Body cannot be blank', '.help-block'); | ||
| 43 | -$I->dontSee('The verification code is incorrect', '.help-block'); | ||
| 44 | - | ||
| 45 | -$I->amGoingTo('submit contact form with correct data'); | ||
| 46 | -$contactPage->submit([ | ||
| 47 | - 'name' => 'tester', | ||
| 48 | - 'email' => 'tester@example.com', | ||
| 49 | - 'subject' => 'test subject', | ||
| 50 | - 'body' => 'test content', | ||
| 51 | - 'verifyCode' => 'testme', | ||
| 52 | -]); | ||
| 53 | -if (method_exists($I, 'wait')) { | ||
| 54 | - $I->wait(3); // only for selenium | ||
| 55 | -} | ||
| 56 | -$I->see('Thank you for contacting us. We will respond to you as soon as possible.'); |
tests/codeception/frontend/acceptance/HomeCept.php deleted
| 1 | -<?php | ||
| 2 | -use tests\codeception\frontend\AcceptanceTester; | ||
| 3 | - | ||
| 4 | -/* @var $scenario Codeception\Scenario */ | ||
| 5 | - | ||
| 6 | -$I = new AcceptanceTester($scenario); | ||
| 7 | -$I->wantTo('ensure that home page works'); | ||
| 8 | -$I->amOnPage(Yii::$app->homeUrl); | ||
| 9 | -$I->see('My Company'); | ||
| 10 | -$I->seeLink('About'); | ||
| 11 | -$I->click('About'); | ||
| 12 | -$I->see('This is the About page.'); |
tests/codeception/frontend/acceptance/LoginCept.php deleted
| 1 | -<?php | ||
| 2 | -use tests\codeception\frontend\AcceptanceTester; | ||
| 3 | -use tests\codeception\common\_pages\LoginPage; | ||
| 4 | - | ||
| 5 | -/* @var $scenario Codeception\Scenario */ | ||
| 6 | - | ||
| 7 | -$I = new AcceptanceTester($scenario); | ||
| 8 | -$I->wantTo('ensure login page works'); | ||
| 9 | - | ||
| 10 | -$loginPage = LoginPage::openBy($I); | ||
| 11 | - | ||
| 12 | -$I->amGoingTo('submit login form with no data'); | ||
| 13 | -$loginPage->login('', ''); | ||
| 14 | -$I->expectTo('see validations errors'); | ||
| 15 | -$I->see('Username cannot be blank.', '.help-block'); | ||
| 16 | -$I->see('Password cannot be blank.', '.help-block'); | ||
| 17 | - | ||
| 18 | -$I->amGoingTo('try to login with wrong credentials'); | ||
| 19 | -$I->expectTo('see validations errors'); | ||
| 20 | -$loginPage->login('admin', 'wrong'); | ||
| 21 | -$I->expectTo('see validations errors'); | ||
| 22 | -$I->see('Incorrect username or password.', '.help-block'); | ||
| 23 | - | ||
| 24 | -$I->amGoingTo('try to login with correct credentials'); | ||
| 25 | -$loginPage->login('erau', 'password_0'); | ||
| 26 | -$I->expectTo('see that user is logged'); | ||
| 27 | -$I->seeLink('Logout (erau)'); | ||
| 28 | -$I->dontSeeLink('Login'); | ||
| 29 | -$I->dontSeeLink('Signup'); | ||
| 30 | -/** Uncomment if using WebDriver | ||
| 31 | - * $I->click('Logout (erau)'); | ||
| 32 | - * $I->dontSeeLink('Logout (erau)'); | ||
| 33 | - * $I->seeLink('Login'); | ||
| 34 | - */ |
tests/codeception/frontend/acceptance/SignupCest.php deleted
| 1 | -<?php | ||
| 2 | - | ||
| 3 | -namespace tests\codeception\frontend\acceptance; | ||
| 4 | - | ||
| 5 | -use tests\codeception\frontend\_pages\SignupPage; | ||
| 6 | -use common\models\User; | ||
| 7 | - | ||
| 8 | -class SignupCest | ||
| 9 | -{ | ||
| 10 | - | ||
| 11 | - /** | ||
| 12 | - * This method is called before each cest class test method | ||
| 13 | - * @param \Codeception\Event\TestEvent $event | ||
| 14 | - */ | ||
| 15 | - public function _before($event) | ||
| 16 | - { | ||
| 17 | - } | ||
| 18 | - | ||
| 19 | - /** | ||
| 20 | - * This method is called after each cest class test method, even if test failed. | ||
| 21 | - * @param \Codeception\Event\TestEvent $event | ||
| 22 | - */ | ||
| 23 | - public function _after($event) | ||
| 24 | - { | ||
| 25 | - User::deleteAll([ | ||
| 26 | - 'email' => 'tester.email@example.com', | ||
| 27 | - 'username' => 'tester', | ||
| 28 | - ]); | ||
| 29 | - } | ||
| 30 | - | ||
| 31 | - /** | ||
| 32 | - * This method is called when test fails. | ||
| 33 | - * @param \Codeception\Event\FailEvent $event | ||
| 34 | - */ | ||
| 35 | - public function _fail($event) | ||
| 36 | - { | ||
| 37 | - } | ||
| 38 | - | ||
| 39 | - /** | ||
| 40 | - * @param \codeception_frontend\AcceptanceTester $I | ||
| 41 | - * @param \Codeception\Scenario $scenario | ||
| 42 | - */ | ||
| 43 | - public function testUserSignup($I, $scenario) | ||
| 44 | - { | ||
| 45 | - $I->wantTo('ensure that signup works'); | ||
| 46 | - | ||
| 47 | - $signupPage = SignupPage::openBy($I); | ||
| 48 | - $I->see('Signup', 'h1'); | ||
| 49 | - $I->see('Please fill out the following fields to signup:'); | ||
| 50 | - | ||
| 51 | - $I->amGoingTo('submit signup form with no data'); | ||
| 52 | - | ||
| 53 | - $signupPage->submit([]); | ||
| 54 | - | ||
| 55 | - $I->expectTo('see validation errors'); | ||
| 56 | - $I->see('Username cannot be blank.', '.help-block'); | ||
| 57 | - $I->see('Email cannot be blank.', '.help-block'); | ||
| 58 | - $I->see('Password cannot be blank.', '.help-block'); | ||
| 59 | - | ||
| 60 | - $I->amGoingTo('submit signup form with not correct email'); | ||
| 61 | - $signupPage->submit([ | ||
| 62 | - 'username' => 'tester', | ||
| 63 | - 'email' => 'tester.email', | ||
| 64 | - 'password' => 'tester_password', | ||
| 65 | - ]); | ||
| 66 | - | ||
| 67 | - $I->expectTo('see that email address is wrong'); | ||
| 68 | - $I->dontSee('Username cannot be blank.', '.help-block'); | ||
| 69 | - $I->dontSee('Password cannot be blank.', '.help-block'); | ||
| 70 | - $I->see('Email is not a valid email address.', '.help-block'); | ||
| 71 | - | ||
| 72 | - $I->amGoingTo('submit signup form with correct email'); | ||
| 73 | - $signupPage->submit([ | ||
| 74 | - 'username' => 'tester', | ||
| 75 | - 'email' => 'tester.email@example.com', | ||
| 76 | - 'password' => 'tester_password', | ||
| 77 | - ]); | ||
| 78 | - | ||
| 79 | - $I->expectTo('see that user logged in'); | ||
| 80 | - $I->seeLink('Logout (tester)'); | ||
| 81 | - } | ||
| 82 | -} |
tests/codeception/frontend/acceptance/_bootstrap.php deleted
tests/codeception/frontend/codeception.yml deleted
| 1 | -namespace: tests\codeception\frontend | ||
| 2 | -actor: Tester | ||
| 3 | -paths: | ||
| 4 | - tests: . | ||
| 5 | - log: _output | ||
| 6 | - data: _data | ||
| 7 | - helpers: _support | ||
| 8 | -settings: | ||
| 9 | - bootstrap: _bootstrap.php | ||
| 10 | - suite_class: \PHPUnit_Framework_TestSuite | ||
| 11 | - colors: true | ||
| 12 | - memory_limit: 1024M | ||
| 13 | - log: true | ||
| 14 | -config: | ||
| 15 | - # the entry script URL (with host info) for functional and acceptance tests | ||
| 16 | - # PLEASE ADJUST IT TO THE ACTUAL ENTRY SCRIPT URL | ||
| 17 | - test_entry_url: http://localhost:8080/frontend/web/index-test.php |
tests/codeception/frontend/functional.suite.yml deleted
| 1 | -# Codeception Test Suite Configuration | ||
| 2 | - | ||
| 3 | -# suite for functional (integration) tests. | ||
| 4 | -# emulate web requests and make application process them. | ||
| 5 | -# (tip: better to use with frameworks). | ||
| 6 | - | ||
| 7 | -# RUN `build` COMMAND AFTER ADDING/REMOVING MODULES. | ||
| 8 | -#basic/web/index.php | ||
| 9 | -class_name: FunctionalTester | ||
| 10 | -modules: | ||
| 11 | - enabled: | ||
| 12 | - - Filesystem | ||
| 13 | - - Yii2 | ||
| 14 | - - tests\codeception\common\_support\FixtureHelper | ||
| 15 | - config: | ||
| 16 | - Yii2: | ||
| 17 | - configFile: '../config/frontend/functional.php' |
tests/codeception/frontend/functional/AboutCept.php deleted
| 1 | -<?php | ||
| 2 | -use tests\codeception\frontend\FunctionalTester; | ||
| 3 | -use tests\codeception\frontend\_pages\AboutPage; | ||
| 4 | - | ||
| 5 | -/* @var $scenario Codeception\Scenario */ | ||
| 6 | - | ||
| 7 | -$I = new FunctionalTester($scenario); | ||
| 8 | -$I->wantTo('ensure that about works'); | ||
| 9 | -AboutPage::openBy($I); | ||
| 10 | -$I->see('About', 'h1'); |
tests/codeception/frontend/functional/ContactCept.php deleted
| 1 | -<?php | ||
| 2 | -use tests\codeception\frontend\FunctionalTester; | ||
| 3 | -use tests\codeception\frontend\_pages\ContactPage; | ||
| 4 | - | ||
| 5 | -/* @var $scenario Codeception\Scenario */ | ||
| 6 | - | ||
| 7 | -$I = new FunctionalTester($scenario); | ||
| 8 | -$I->wantTo('ensure that contact works'); | ||
| 9 | - | ||
| 10 | -$contactPage = ContactPage::openBy($I); | ||
| 11 | - | ||
| 12 | -$I->see('Contact', 'h1'); | ||
| 13 | - | ||
| 14 | -$I->amGoingTo('submit contact form with no data'); | ||
| 15 | -$contactPage->submit([]); | ||
| 16 | -$I->expectTo('see validations errors'); | ||
| 17 | -$I->see('Contact', 'h1'); | ||
| 18 | -$I->see('Name cannot be blank', '.help-block'); | ||
| 19 | -$I->see('Email cannot be blank', '.help-block'); | ||
| 20 | -$I->see('Subject cannot be blank', '.help-block'); | ||
| 21 | -$I->see('Body cannot be blank', '.help-block'); | ||
| 22 | -$I->see('The verification code is incorrect', '.help-block'); | ||
| 23 | - | ||
| 24 | -$I->amGoingTo('submit contact form with not correct email'); | ||
| 25 | -$contactPage->submit([ | ||
| 26 | - 'name' => 'tester', | ||
| 27 | - 'email' => 'tester.email', | ||
| 28 | - 'subject' => 'test subject', | ||
| 29 | - 'body' => 'test content', | ||
| 30 | - 'verifyCode' => 'testme', | ||
| 31 | -]); | ||
| 32 | -$I->expectTo('see that email adress is wrong'); | ||
| 33 | -$I->dontSee('Name cannot be blank', '.help-block'); | ||
| 34 | -$I->see('Email is not a valid email address.', '.help-block'); | ||
| 35 | -$I->dontSee('Subject cannot be blank', '.help-block'); | ||
| 36 | -$I->dontSee('Body cannot be blank', '.help-block'); | ||
| 37 | -$I->dontSee('The verification code is incorrect', '.help-block'); | ||
| 38 | - | ||
| 39 | -$I->amGoingTo('submit contact form with correct data'); | ||
| 40 | -$contactPage->submit([ | ||
| 41 | - 'name' => 'tester', | ||
| 42 | - 'email' => 'tester@example.com', | ||
| 43 | - 'subject' => 'test subject', | ||
| 44 | - 'body' => 'test content', | ||
| 45 | - 'verifyCode' => 'testme', | ||
| 46 | -]); | ||
| 47 | -$I->see('Thank you for contacting us. We will respond to you as soon as possible.'); |
tests/codeception/frontend/functional/HomeCept.php deleted
| 1 | -<?php | ||
| 2 | -use tests\codeception\frontend\FunctionalTester; | ||
| 3 | - | ||
| 4 | -/* @var $scenario Codeception\Scenario */ | ||
| 5 | - | ||
| 6 | -$I = new FunctionalTester($scenario); | ||
| 7 | -$I->wantTo('ensure that home page works'); | ||
| 8 | -$I->amOnPage(Yii::$app->homeUrl); | ||
| 9 | -$I->see('My Company'); | ||
| 10 | -$I->seeLink('About'); | ||
| 11 | -$I->click('About'); | ||
| 12 | -$I->see('This is the About page.'); |
tests/codeception/frontend/functional/LoginCept.php deleted
| 1 | -<?php | ||
| 2 | -use tests\codeception\frontend\FunctionalTester; | ||
| 3 | -use tests\codeception\common\_pages\LoginPage; | ||
| 4 | - | ||
| 5 | -/* @var $scenario Codeception\Scenario */ | ||
| 6 | - | ||
| 7 | -$I = new FunctionalTester($scenario); | ||
| 8 | -$I->wantTo('ensure login page works'); | ||
| 9 | - | ||
| 10 | -$loginPage = LoginPage::openBy($I); | ||
| 11 | - | ||
| 12 | -$I->amGoingTo('submit login form with no data'); | ||
| 13 | -$loginPage->login('', ''); | ||
| 14 | -$I->expectTo('see validations errors'); | ||
| 15 | -$I->see('Username cannot be blank.', '.help-block'); | ||
| 16 | -$I->see('Password cannot be blank.', '.help-block'); | ||
| 17 | - | ||
| 18 | -$I->amGoingTo('try to login with wrong credentials'); | ||
| 19 | -$I->expectTo('see validations errors'); | ||
| 20 | -$loginPage->login('admin', 'wrong'); | ||
| 21 | -$I->expectTo('see validations errors'); | ||
| 22 | -$I->see('Incorrect username or password.', '.help-block'); | ||
| 23 | - | ||
| 24 | -$I->amGoingTo('try to login with correct credentials'); | ||
| 25 | -$loginPage->login('erau', 'password_0'); | ||
| 26 | -$I->expectTo('see that user is logged'); | ||
| 27 | -$I->seeLink('Logout (erau)'); | ||
| 28 | -$I->dontSeeLink('Login'); | ||
| 29 | -$I->dontSeeLink('Signup'); |
tests/codeception/frontend/functional/SignupCest.php deleted
| 1 | -<?php | ||
| 2 | - | ||
| 3 | -namespace tests\codeception\frontend\functional; | ||
| 4 | - | ||
| 5 | -use tests\codeception\frontend\_pages\SignupPage; | ||
| 6 | -use common\models\User; | ||
| 7 | - | ||
| 8 | -class SignupCest | ||
| 9 | -{ | ||
| 10 | - | ||
| 11 | - /** | ||
| 12 | - * This method is called before each cest class test method | ||
| 13 | - * @param \Codeception\Event\TestEvent $event | ||
| 14 | - */ | ||
| 15 | - public function _before($event) | ||
| 16 | - { | ||
| 17 | - } | ||
| 18 | - | ||
| 19 | - /** | ||
| 20 | - * This method is called after each cest class test method, even if test failed. | ||
| 21 | - * @param \Codeception\Event\TestEvent $event | ||
| 22 | - */ | ||
| 23 | - public function _after($event) | ||
| 24 | - { | ||
| 25 | - User::deleteAll([ | ||
| 26 | - 'email' => 'tester.email@example.com', | ||
| 27 | - 'username' => 'tester', | ||
| 28 | - ]); | ||
| 29 | - } | ||
| 30 | - | ||
| 31 | - /** | ||
| 32 | - * This method is called when test fails. | ||
| 33 | - * @param \Codeception\Event\FailEvent $event | ||
| 34 | - */ | ||
| 35 | - public function _fail($event) | ||
| 36 | - { | ||
| 37 | - | ||
| 38 | - } | ||
| 39 | - | ||
| 40 | - /** | ||
| 41 | - * | ||
| 42 | - * @param \codeception_frontend\FunctionalTester $I | ||
| 43 | - * @param \Codeception\Scenario $scenario | ||
| 44 | - */ | ||
| 45 | - public function testUserSignup($I, $scenario) | ||
| 46 | - { | ||
| 47 | - $I->wantTo('ensure that signup works'); | ||
| 48 | - | ||
| 49 | - $signupPage = SignupPage::openBy($I); | ||
| 50 | - $I->see('Signup', 'h1'); | ||
| 51 | - $I->see('Please fill out the following fields to signup:'); | ||
| 52 | - | ||
| 53 | - $I->amGoingTo('submit signup form with no data'); | ||
| 54 | - | ||
| 55 | - $signupPage->submit([]); | ||
| 56 | - | ||
| 57 | - $I->expectTo('see validation errors'); | ||
| 58 | - $I->see('Username cannot be blank.', '.help-block'); | ||
| 59 | - $I->see('Email cannot be blank.', '.help-block'); | ||
| 60 | - $I->see('Password cannot be blank.', '.help-block'); | ||
| 61 | - | ||
| 62 | - $I->amGoingTo('submit signup form with not correct email'); | ||
| 63 | - $signupPage->submit([ | ||
| 64 | - 'username' => 'tester', | ||
| 65 | - 'email' => 'tester.email', | ||
| 66 | - 'password' => 'tester_password', | ||
| 67 | - ]); | ||
| 68 | - | ||
| 69 | - $I->expectTo('see that email address is wrong'); | ||
| 70 | - $I->dontSee('Username cannot be blank.', '.help-block'); | ||
| 71 | - $I->dontSee('Password cannot be blank.', '.help-block'); | ||
| 72 | - $I->see('Email is not a valid email address.', '.help-block'); | ||
| 73 | - | ||
| 74 | - $I->amGoingTo('submit signup form with correct email'); | ||
| 75 | - $signupPage->submit([ | ||
| 76 | - 'username' => 'tester', | ||
| 77 | - 'email' => 'tester.email@example.com', | ||
| 78 | - 'password' => 'tester_password', | ||
| 79 | - ]); | ||
| 80 | - | ||
| 81 | - $I->expectTo('see that user is created'); | ||
| 82 | - $I->seeRecord('common\models\User', [ | ||
| 83 | - 'username' => 'tester', | ||
| 84 | - 'email' => 'tester.email@example.com', | ||
| 85 | - ]); | ||
| 86 | - | ||
| 87 | - $I->expectTo('see that user logged in'); | ||
| 88 | - $I->seeLink('Logout (tester)'); | ||
| 89 | - } | ||
| 90 | -} |
tests/codeception/frontend/functional/_bootstrap.php deleted
tests/codeception/frontend/unit.suite.yml deleted
tests/codeception/frontend/unit/DbTestCase.php deleted
tests/codeception/frontend/unit/TestCase.php deleted
tests/codeception/frontend/unit/_bootstrap.php deleted
tests/codeception/frontend/unit/fixtures/data/models/user.php deleted
| 1 | -<?php | ||
| 2 | - | ||
| 3 | -return [ | ||
| 4 | - [ | ||
| 5 | - 'username' => 'okirlin', | ||
| 6 | - 'auth_key' => 'iwTNae9t34OmnK6l4vT4IeaTk-YWI2Rv', | ||
| 7 | - 'password_hash' => '$2y$13$CXT0Rkle1EMJ/c1l5bylL.EylfmQ39O5JlHJVFpNn618OUS1HwaIi', | ||
| 8 | - 'password_reset_token' => 't5GU9NwpuGYSfb7FEZMAxqtuz2PkEvv_' . time(), | ||
| 9 | - 'created_at' => '1391885313', | ||
| 10 | - 'updated_at' => '1391885313', | ||
| 11 | - 'email' => 'brady.renner@rutherford.com', | ||
| 12 | - ], | ||
| 13 | - [ | ||
| 14 | - 'username' => 'troy.becker', | ||
| 15 | - 'auth_key' => 'EdKfXrx88weFMV0vIxuTMWKgfK2tS3Lp', | ||
| 16 | - 'password_hash' => '$2y$13$g5nv41Px7VBqhS3hVsVN2.MKfgT3jFdkXEsMC4rQJLfaMa7VaJqL2', | ||
| 17 | - 'password_reset_token' => '4BSNyiZNAuxjs5Mty990c47sVrgllIi_' . time(), | ||
| 18 | - 'created_at' => '1391885313', | ||
| 19 | - 'updated_at' => '1391885313', | ||
| 20 | - 'email' => 'nicolas.dianna@hotmail.com', | ||
| 21 | - 'status' => '0', | ||
| 22 | - ], | ||
| 23 | -]; |
tests/codeception/frontend/unit/models/ContactFormTest.php deleted
| 1 | -<?php | ||
| 2 | - | ||
| 3 | -namespace tests\codeception\frontend\unit\models; | ||
| 4 | - | ||
| 5 | -use Yii; | ||
| 6 | -use tests\codeception\frontend\unit\TestCase; | ||
| 7 | -use frontend\models\ContactForm; | ||
| 8 | - | ||
| 9 | -class ContactFormTest extends TestCase | ||
| 10 | -{ | ||
| 11 | - | ||
| 12 | - use \Codeception\Specify; | ||
| 13 | - | ||
| 14 | - protected function setUp() | ||
| 15 | - { | ||
| 16 | - parent::setUp(); | ||
| 17 | - Yii::$app->mailer->fileTransportCallback = function ($mailer, $message) { | ||
| 18 | - return 'testing_message.eml'; | ||
| 19 | - }; | ||
| 20 | - } | ||
| 21 | - | ||
| 22 | - protected function tearDown() | ||
| 23 | - { | ||
| 24 | - unlink($this->getMessageFile()); | ||
| 25 | - parent::tearDown(); | ||
| 26 | - } | ||
| 27 | - | ||
| 28 | - public function testContact() | ||
| 29 | - { | ||
| 30 | - $model = new ContactForm(); | ||
| 31 | - | ||
| 32 | - $model->attributes = [ | ||
| 33 | - 'name' => 'Tester', | ||
| 34 | - 'email' => 'tester@example.com', | ||
| 35 | - 'subject' => 'very important letter subject', | ||
| 36 | - 'body' => 'body of current message', | ||
| 37 | - ]; | ||
| 38 | - | ||
| 39 | - $model->sendEmail('admin@example.com'); | ||
| 40 | - | ||
| 41 | - $this->specify('email should be send', function () { | ||
| 42 | - expect('email file should exist', file_exists($this->getMessageFile()))->true(); | ||
| 43 | - }); | ||
| 44 | - | ||
| 45 | - $this->specify('message should contain correct data', function () use ($model) { | ||
| 46 | - $emailMessage = file_get_contents($this->getMessageFile()); | ||
| 47 | - | ||
| 48 | - expect('email should contain user name', $emailMessage)->contains($model->name); | ||
| 49 | - expect('email should contain sender email', $emailMessage)->contains($model->email); | ||
| 50 | - expect('email should contain subject', $emailMessage)->contains($model->subject); | ||
| 51 | - expect('email should contain body', $emailMessage)->contains($model->body); | ||
| 52 | - }); | ||
| 53 | - } | ||
| 54 | - | ||
| 55 | - private function getMessageFile() | ||
| 56 | - { | ||
| 57 | - return Yii::getAlias(Yii::$app->mailer->fileTransportPath) . '/testing_message.eml'; | ||
| 58 | - } | ||
| 59 | -} |
tests/codeception/frontend/unit/models/PasswordResetRequestFormTest.php deleted
| 1 | -<?php | ||
| 2 | - | ||
| 3 | -namespace tests\codeception\frontend\models; | ||
| 4 | - | ||
| 5 | -use Yii; | ||
| 6 | -use tests\codeception\frontend\unit\DbTestCase; | ||
| 7 | -use frontend\models\PasswordResetRequestForm; | ||
| 8 | -use tests\codeception\common\fixtures\UserFixture; | ||
| 9 | -use common\models\User; | ||
| 10 | -use Codeception\Specify; | ||
| 11 | - | ||
| 12 | -class PasswordResetRequestFormTest extends DbTestCase | ||
| 13 | -{ | ||
| 14 | - use Specify; | ||
| 15 | - | ||
| 16 | - protected function setUp() | ||
| 17 | - { | ||
| 18 | - parent::setUp(); | ||
| 19 | - | ||
| 20 | - Yii::$app->mailer->fileTransportCallback = function ($mailer, $message) { | ||
| 21 | - return 'testing_message.eml'; | ||
| 22 | - }; | ||
| 23 | - } | ||
| 24 | - | ||
| 25 | - protected function tearDown() | ||
| 26 | - { | ||
| 27 | - @unlink($this->getMessageFile()); | ||
| 28 | - | ||
| 29 | - parent::tearDown(); | ||
| 30 | - } | ||
| 31 | - | ||
| 32 | - public function testSendEmailWrongUser() | ||
| 33 | - { | ||
| 34 | - $this->specify('no user with such email, message should not be sent', function () { | ||
| 35 | - | ||
| 36 | - $model = new PasswordResetRequestForm(); | ||
| 37 | - $model->email = 'not-existing-email@example.com'; | ||
| 38 | - | ||
| 39 | - expect('email not sent', $model->sendEmail())->false(); | ||
| 40 | - | ||
| 41 | - }); | ||
| 42 | - | ||
| 43 | - $this->specify('user is not active, message should not be sent', function () { | ||
| 44 | - | ||
| 45 | - $model = new PasswordResetRequestForm(); | ||
| 46 | - $model->email = $this->user[1]['email']; | ||
| 47 | - | ||
| 48 | - expect('email not sent', $model->sendEmail())->false(); | ||
| 49 | - | ||
| 50 | - }); | ||
| 51 | - } | ||
| 52 | - | ||
| 53 | - public function testSendEmailCorrectUser() | ||
| 54 | - { | ||
| 55 | - $model = new PasswordResetRequestForm(); | ||
| 56 | - $model->email = $this->user[0]['email']; | ||
| 57 | - $user = User::findOne(['password_reset_token' => $this->user[0]['password_reset_token']]); | ||
| 58 | - | ||
| 59 | - expect('email sent', $model->sendEmail())->true(); | ||
| 60 | - expect('user has valid token', $user->password_reset_token)->notNull(); | ||
| 61 | - | ||
| 62 | - $this->specify('message has correct format', function () use ($model) { | ||
| 63 | - | ||
| 64 | - expect('message file exists', file_exists($this->getMessageFile()))->true(); | ||
| 65 | - | ||
| 66 | - $message = file_get_contents($this->getMessageFile()); | ||
| 67 | - expect('message "from" is correct', $message)->contains(Yii::$app->params['supportEmail']); | ||
| 68 | - expect('message "to" is correct', $message)->contains($model->email); | ||
| 69 | - | ||
| 70 | - }); | ||
| 71 | - } | ||
| 72 | - | ||
| 73 | - public function fixtures() | ||
| 74 | - { | ||
| 75 | - return [ | ||
| 76 | - 'user' => [ | ||
| 77 | - 'class' => UserFixture::className(), | ||
| 78 | - 'dataFile' => '@tests/codeception/frontend/unit/fixtures/data/models/user.php' | ||
| 79 | - ], | ||
| 80 | - ]; | ||
| 81 | - } | ||
| 82 | - | ||
| 83 | - private function getMessageFile() | ||
| 84 | - { | ||
| 85 | - return Yii::getAlias(Yii::$app->mailer->fileTransportPath) . '/testing_message.eml'; | ||
| 86 | - } | ||
| 87 | -} |
tests/codeception/frontend/unit/models/ResetPasswordFormTest.php deleted
| 1 | -<?php | ||
| 2 | - | ||
| 3 | -namespace tests\codeception\frontend\unit\models; | ||
| 4 | - | ||
| 5 | -use tests\codeception\frontend\unit\DbTestCase; | ||
| 6 | -use tests\codeception\common\fixtures\UserFixture; | ||
| 7 | -use frontend\models\ResetPasswordForm; | ||
| 8 | - | ||
| 9 | -class ResetPasswordFormTest extends DbTestCase | ||
| 10 | -{ | ||
| 11 | - | ||
| 12 | - /** | ||
| 13 | - * @expectedException \yii\base\InvalidParamException | ||
| 14 | - */ | ||
| 15 | - public function testResetWrongToken() | ||
| 16 | - { | ||
| 17 | - new ResetPasswordForm('notexistingtoken_1391882543'); | ||
| 18 | - } | ||
| 19 | - | ||
| 20 | - /** | ||
| 21 | - * @expectedException \yii\base\InvalidParamException | ||
| 22 | - */ | ||
| 23 | - public function testResetEmptyToken() | ||
| 24 | - { | ||
| 25 | - new ResetPasswordForm(''); | ||
| 26 | - } | ||
| 27 | - | ||
| 28 | - public function testResetCorrectToken() | ||
| 29 | - { | ||
| 30 | - $form = new ResetPasswordForm($this->user[0]['password_reset_token']); | ||
| 31 | - expect('password should be resetted', $form->resetPassword())->true(); | ||
| 32 | - } | ||
| 33 | - | ||
| 34 | - public function fixtures() | ||
| 35 | - { | ||
| 36 | - return [ | ||
| 37 | - 'user' => [ | ||
| 38 | - 'class' => UserFixture::className(), | ||
| 39 | - 'dataFile' => '@tests/codeception/frontend/unit/fixtures/data/models/user.php' | ||
| 40 | - ], | ||
| 41 | - ]; | ||
| 42 | - } | ||
| 43 | -} |
tests/codeception/frontend/unit/models/SignupFormTest.php deleted
| 1 | -<?php | ||
| 2 | - | ||
| 3 | -namespace tests\codeception\frontend\unit\models; | ||
| 4 | - | ||
| 5 | -use tests\codeception\frontend\unit\DbTestCase; | ||
| 6 | -use tests\codeception\common\fixtures\UserFixture; | ||
| 7 | -use Codeception\Specify; | ||
| 8 | -use frontend\models\SignupForm; | ||
| 9 | - | ||
| 10 | -class SignupFormTest extends DbTestCase | ||
| 11 | -{ | ||
| 12 | - | ||
| 13 | - use Specify; | ||
| 14 | - | ||
| 15 | - public function testCorrectSignup() | ||
| 16 | - { | ||
| 17 | - $model = new SignupForm([ | ||
| 18 | - 'username' => 'some_username', | ||
| 19 | - 'email' => 'some_email@example.com', | ||
| 20 | - 'password' => 'some_password', | ||
| 21 | - ]); | ||
| 22 | - | ||
| 23 | - $user = $model->signup(); | ||
| 24 | - | ||
| 25 | - $this->assertInstanceOf('common\models\User', $user, 'user should be valid'); | ||
| 26 | - | ||
| 27 | - expect('username should be correct', $user->username)->equals('some_username'); | ||
| 28 | - expect('email should be correct', $user->email)->equals('some_email@example.com'); | ||
| 29 | - expect('password should be correct', $user->validatePassword('some_password'))->true(); | ||
| 30 | - } | ||
| 31 | - | ||
| 32 | - public function testNotCorrectSignup() | ||
| 33 | - { | ||
| 34 | - $model = new SignupForm([ | ||
| 35 | - 'username' => 'troy.becker', | ||
| 36 | - 'email' => 'nicolas.dianna@hotmail.com', | ||
| 37 | - 'password' => 'some_password', | ||
| 38 | - ]); | ||
| 39 | - | ||
| 40 | - expect('username and email are in use, user should not be created', $model->signup())->null(); | ||
| 41 | - } | ||
| 42 | - | ||
| 43 | - public function fixtures() | ||
| 44 | - { | ||
| 45 | - return [ | ||
| 46 | - 'user' => [ | ||
| 47 | - 'class' => UserFixture::className(), | ||
| 48 | - 'dataFile' => '@tests/codeception/frontend/unit/fixtures/data/models/user.php', | ||
| 49 | - ], | ||
| 50 | - ]; | ||
| 51 | - } | ||
| 52 | -} |
tests/config/.gitignore deleted
tests/config/bootstrap.php deleted
| 1 | -<?php |
tests/config/main.php deleted
tests/config/params.php deleted
tests/config/unit.php deleted
tests/unit/EmailValidatorTest.php deleted
| 1 | -<?php | ||
| 2 | -namespace tests\unit; | ||
| 3 | - | ||
| 4 | -use Codeception\TestCase\Test; | ||
| 5 | -use yii\validators\EmailValidator; | ||
| 6 | - | ||
| 7 | -class EmailValidatorTest extends Test{ | ||
| 8 | - | ||
| 9 | - /** | ||
| 10 | - * @dataProvider getEmailVariants | ||
| 11 | - */ | ||
| 12 | - public function testEmail($email, $result){ | ||
| 13 | - $validator = new EmailValidator(); | ||
| 14 | - $this->assertEquals($validator->validate($email), $result); | ||
| 15 | - } | ||
| 16 | - | ||
| 17 | - public function getEmailVariants(){ | ||
| 18 | - return [ | ||
| 19 | - ['test@test.com', true], | ||
| 20 | - ['test@test', false], | ||
| 21 | - ['testtest.com', false] | ||
| 22 | - ]; | ||
| 23 | - } | ||
| 24 | -} | ||
| 25 | \ No newline at end of file | 0 | \ No newline at end of file |
tests/unit/UserStoreTest.php deleted
| 1 | -<?php | ||
| 2 | -namespace tests\unit; | ||
| 3 | -use common\components\UserStore; | ||
| 4 | - | ||
| 5 | -use Yii; | ||
| 6 | - | ||
| 7 | -class UserStoreTest extends \Codeception\TestCase\Test | ||
| 8 | -{ | ||
| 9 | - /** | ||
| 10 | - * @var \UnitTester | ||
| 11 | - */ | ||
| 12 | - protected $tester; | ||
| 13 | - | ||
| 14 | - private $store; | ||
| 15 | - | ||
| 16 | - public function _before() | ||
| 17 | - { | ||
| 18 | - $this->store = new UserStore(); | ||
| 19 | - } | ||
| 20 | - | ||
| 21 | - public function imagineCustomer(){ | ||
| 22 | - $fake = \Faker\Factory::create(); | ||
| 23 | - return [ | ||
| 24 | - 'name' => $fake->name, | ||
| 25 | - 'email' => $fake->email, | ||
| 26 | - 'pass' => $fake->password(19), | ||
| 27 | - ]; | ||
| 28 | - | ||
| 29 | - } | ||
| 30 | - | ||
| 31 | - public function testGetUser(){ | ||
| 32 | - $imagineUser = $this->imagineCustomer(); | ||
| 33 | - $this->store->addUser($imagineUser['name'],$imagineUser['email'],$imagineUser['pass']); | ||
| 34 | - $user = $this->store->getUser($imagineUser['email']); | ||
| 35 | - $this->assertEquals($user['name'], $imagineUser['name']); | ||
| 36 | - $this->assertEquals($user['email'], $imagineUser['email']); | ||
| 37 | - $this->assertEquals($user['pass'], $imagineUser['pass']); | ||
| 38 | - } | ||
| 39 | - | ||
| 40 | - public function testAddUser_ShortPass(){ | ||
| 41 | - $this->setExpectedException('\yii\base\Exception'); | ||
| 42 | - $this->store->addUser('Some Name','collmail@gig.com','ff'); | ||
| 43 | - } | ||
| 44 | - | ||
| 45 | - protected function _after() | ||
| 46 | - { | ||
| 47 | - } | ||
| 48 | - | ||
| 49 | - // tests | ||
| 50 | -// public function testMe() | ||
| 51 | -// { | ||
| 52 | -// | ||
| 53 | -// } | ||
| 54 | -} | ||
| 55 | \ No newline at end of file | 0 | \ No newline at end of file |
tests/unit/ValidatorTest.php deleted
| 1 | -<?php | ||
| 2 | -namespace tests\unit; | ||
| 3 | -use common\components\UserStore; | ||
| 4 | - | ||
| 5 | -use common\components\Validator; | ||
| 6 | -use Yii; | ||
| 7 | - | ||
| 8 | -class ValidatorTest extends \Codeception\TestCase\Test | ||
| 9 | -{ | ||
| 10 | - public function testValidate_FalsePass(){ | ||
| 11 | - $store = $this->getMock('common\components\UserStore'); | ||
| 12 | - $this->validator = new Validator($store); | ||
| 13 | - $store->expects($this->once()) | ||
| 14 | - ->method('notifyPasswordFailure') | ||
| 15 | - ->with($this->equalTo("test@emails.com")); | ||
| 16 | - | ||
| 17 | - $store->expects($this->any()) | ||
| 18 | - ->method("getUser") | ||
| 19 | - ->will($this->returnValue([ | ||
| 20 | - "name"=>"fdsfdf", | ||
| 21 | - "email"=>"test@emails.com", | ||
| 22 | - "pass"=>"rihfhh" | ||
| 23 | - ])); | ||
| 24 | - | ||
| 25 | - $this->assertFalse($this->validator->validateUser("test@emails.com", "wrong")); | ||
| 26 | - } | ||
| 27 | -} | ||
| 28 | \ No newline at end of file | 0 | \ No newline at end of file |