Commit f9d4f332 authored by Doris Tam's avatar Doris Tam Committed by Robert Lyon
Browse files

Bug 1810990: blocktypes: taggedposts, recentposts, documentation

Change-Id: Id0747afe59b8030ae9493513445217a29a626fd8
parent a3943d46
...@@ -735,6 +735,15 @@ EOD; ...@@ -735,6 +735,15 @@ EOD;
if (is_callable($classname . '::' . $functionname)) { if (is_callable($classname . '::' . $functionname)) {
$result = call_static_method($classname, $functionname, $sortedfields, $ownertype, $ownerid, $title, $view); $result = call_static_method($classname, $functionname, $sortedfields, $ownertype, $ownerid, $title, $view);
$configdata = array_merge($configdata, (array)$result); $configdata = array_merge($configdata, (array)$result);
// make new block
$blockinstance = self::create_new_block_instance($blocktype, $view, $viewid, $title, self::$viewcolcounts, $configdata, $maxcols);
//taggedposts blocktype - block instance needs to pre-exist
if ($functionname == 'generate_configdata_taggedposts') {
PluginBlocktypeTaggedposts::instance_config_save($configdata, $blockinstance);
}
// setting tags to blocks
self::set_block_tags($view, $blockinstance, $ownertype, $ownerid, $configdata);
} }
else { else {
throw new SystemException("The blocktype {$record['type']} is not supported yet."); throw new SystemException("The blocktype {$record['type']} is not supported yet.");
...@@ -766,6 +775,53 @@ EOD; ...@@ -766,6 +775,53 @@ EOD;
} }
else { else {
$bi->commit(); $bi->commit();
return $bi;
}
}
/**
* Set tags for blocks from information in configdata
*
* the configdata array is different from normal mahara db so that the tags
* can be stored somewhere until after the block instance has been created to be added.
*
* @param BlockInstance $bi
* @param string $ownertype
* @param int $ownerid
* @param array $configdata
*/
public static function set_block_tags($view, $bi, $ownertype, $ownerid, $configdata) {
if (!array_key_exists('tags',$configdata))
return;
if ($view->get('group')) {
$ownertype = 'group';
}
else if ($view->get('institution')) {
$ownertype = 'institution';
}
else {
$ownertype = 'user';
}
if ($tags = $configdata['tags']) {
$tags = check_case_sensitive($tags, 'tag');
delete_records('tag', 'resourcetype', 'blocktype', 'resourceid', $bi->get('id'));
foreach ($tags as $tag) {
// truncate the tag before insert it into the database
$tag = substr($tag, 0, 128);
$tag = check_if_institution_tag($tag);
insert_record('tag',
(object)array(
'resourcetype' => 'blocktype',
'resourceid' => $bi->get('id'),
'ownertype' => $ownertype,
'ownerid' => $ownerid,
'tag' => $tag,
'ctime' => db_format_timestamp(time()),
'editedby' => $ownerid,
)
);
}
} }
} }
...@@ -774,7 +830,7 @@ EOD; ...@@ -774,7 +830,7 @@ EOD;
* displaying the blogs that were created using the function create_blog * displaying the blogs that were created using the function create_blog
* given a matching blog title * given a matching blog title
* *
* @param array $fields holding each chunk of data between the ; in the behat data column * @param array $sortedfields holding each chunk of data between the ; in the behat data column
* @return array $configdata of key and values for db table * @return array $configdata of key and values for db table
*/ */
public static function generate_configdata_blog($sortedfields) { public static function generate_configdata_blog($sortedfields) {
...@@ -802,7 +858,7 @@ EOD; ...@@ -802,7 +858,7 @@ EOD;
* displaying the blogposts that were created using the function create_blogpost * displaying the blogposts that were created using the function create_blogpost
* matching a given blog and entry title * matching a given blog and entry title
* *
* @param array $fields holding each chunk of data between the ; in the behat data column * @param array $sortedfields holding each chunk of data between the ; in the behat data column
* @return array $configdata of key and values for db table * @return array $configdata of key and values for db table
*/ */
public static function generate_configdata_blogpost($sortedfields) { public static function generate_configdata_blogpost($sortedfields) {
...@@ -832,16 +888,16 @@ EOD; ...@@ -832,16 +888,16 @@ EOD;
/** /**
* generate a comment blocktype. * generate a comment blocktype.
* @param array $fields holding each chunk of data between the ; in the behat data column * @param array $sortedfields holding each chunk of data between the ; in the behat data column
* @return array with redundant information as there is no specific artefact connected to it. * @return array with redundant information as there is no specific artefact connected to it.
*/ */
public static function generate_configdata_comment($data) { public static function generate_configdata_comment($sortedfields) {
return array(); return array();
} }
/** /**
* generate configdata and instance for blocktype: creativecommons * generate configdata and instance for blocktype: creativecommons
* @param array $fields holding each chunk of data between the ; in the behat data column * @param array $sortedfields holding each chunk of data between the ; in the behat data column
* @return array $configdata of key and values for db table * @return array $configdata of key and values for db table
*/ */
public static function generate_configdata_creativecommons($sortedfields) { public static function generate_configdata_creativecommons($sortedfields) {
...@@ -879,7 +935,7 @@ EOD; ...@@ -879,7 +935,7 @@ EOD;
* *
* doesn't work in group pages * doesn't work in group pages
* *
* @param array $fields holding each chunk of data between the ; in the behat data column * @param array $sortedfields holding each chunk of data between the ; in the behat data column
* @param string $ownertype of user * @param string $ownertype of user
* @param string $ownerid of the user * @param string $ownerid of the user
* @return array $configdata of key and values for db table * @return array $configdata of key and values for db table
...@@ -899,7 +955,7 @@ EOD; ...@@ -899,7 +955,7 @@ EOD;
/** /**
* generate configdata for the blocktype: rss feeds/external feeds * generate configdata for the blocktype: rss feeds/external feeds
* @param array $fields holding each chunk of data between the ; in the behat data column * @param array $sortedfields holding each chunk of data between the ; in the behat data column
* @return array $configdata of key and values for db table * @return array $configdata of key and values for db table
*/ */
public static function generate_configdata_externalfeed($sortedfields) { public static function generate_configdata_externalfeed($sortedfields) {
...@@ -924,7 +980,7 @@ EOD; ...@@ -924,7 +980,7 @@ EOD;
/** /**
* generate configdata for the blocktype: external video * generate configdata for the blocktype: external video
* @param array $fields holding each chunk of data between the ; in the behat data column * @param array $sortedfields holding each chunk of data between the ; in the behat data column
* @return array $configdata of key and values for db table * @return array $configdata of key and values for db table
*/ */
public static function generate_configdata_externalvideo($sortedfields) { public static function generate_configdata_externalvideo($sortedfields) {
...@@ -938,7 +994,7 @@ EOD; ...@@ -938,7 +994,7 @@ EOD;
/** /**
* generate configdata for the blocktype: filedownload * generate configdata for the blocktype: filedownload
* @param array $fields holding each chunk of data between the ; in the behat data column * @param array $sortedfields holding each chunk of data between the ; in the behat data column
* @param string $ownertype of user * @param string $ownertype of user
* @param string $ownerid of the user * @param string $ownerid of the user
* @return array $configdata of key and values for db table * @return array $configdata of key and values for db table
...@@ -996,7 +1052,7 @@ EOD; ...@@ -996,7 +1052,7 @@ EOD;
/** /**
* generate configdata for blocktype: gallery * generate configdata for blocktype: gallery
* @param array $fields holding each chunk of data between the ; in the behat data column * @param array $sortedfields holding each chunk of data between the ; in the behat data column
* @param string $ownertype of user * @param string $ownertype of user
* @param string $ownerid of the user * @param string $ownerid of the user
* @return array $configdata of key and values for db table * @return array $configdata of key and values for db table
...@@ -1063,7 +1119,7 @@ EOD; ...@@ -1063,7 +1119,7 @@ EOD;
/** /**
* generate configdata for blocktype: html * generate configdata for blocktype: html
* @param array $fields holding each chunk of data between the ; in the behat data column * @param array $sortedfields holding each chunk of data between the ; in the behat data column
* @param string $ownertype of user * @param string $ownertype of user
* @param string $ownerid of the user * @param string $ownerid of the user
* @return array $configdata of key and values for db table * @return array $configdata of key and values for db table
...@@ -1081,7 +1137,7 @@ EOD; ...@@ -1081,7 +1137,7 @@ EOD;
/** /**
* generate configdata for the blocktype: image * generate configdata for the blocktype: image
* @param array $fields holding each chunk of data between the ; in the behat data column * @param array $sortedfields holding each chunk of data between the ; in the behat data column
* @param string $ownertype of user * @param string $ownertype of user
* @param string $ownerid of the user * @param string $ownerid of the user
* @return array $configdata of key and values for db table * @return array $configdata of key and values for db table
...@@ -1101,7 +1157,7 @@ EOD; ...@@ -1101,7 +1157,7 @@ EOD;
/** /**
* generate configdata for the blocktype: internalmedia aka 'embeddedmedia * generate configdata for the blocktype: internalmedia aka 'embeddedmedia
* @param array $fields holding each chunk of data between the ; in the behat data column * @param array $sortedfields holding each chunk of data between the ; in the behat data column
* @param string $ownertype of user * @param string $ownertype of user
* @param string $ownerid of the user * @param string $ownerid of the user
* @return array $configdata of key and values of db table * @return array $configdata of key and values of db table
...@@ -1136,7 +1192,7 @@ EOD; ...@@ -1136,7 +1192,7 @@ EOD;
/** /**
* generate configdata for the blocktype: navigation and create navblocks* * generate configdata for the blocktype: navigation and create navblocks*
* **when copytoall is true** * **when copytoall is true**
* @param array $fields holding each chunk of data between the ; in the behat data column * @param array $sortedfields holding each chunk of data between the ; in the behat data column
* @param string $ownertype of user * @param string $ownertype of user
* @param string $ownerid of the user * @param string $ownerid of the user
* @param string $title of block to be created* (when copytoall is true) * @param string $title of block to be created* (when copytoall is true)
...@@ -1198,7 +1254,7 @@ EOD; ...@@ -1198,7 +1254,7 @@ EOD;
/** /**
* generate configdata for the blocktype: pdf * generate configdata for the blocktype: pdf
* @param array $fields holding each chunk of data between the ; in the behat data column * @param array $sortedfields holding each chunk of data between the ; in the behat data column
* @param string $ownertype of user * @param string $ownertype of user
* @param string $ownerid of the user * @param string $ownerid of the user
* @return array $configdata of key and values of db table * @return array $configdata of key and values of db table
...@@ -1216,7 +1272,7 @@ EOD; ...@@ -1216,7 +1272,7 @@ EOD;
/** /**
* generate configdata for the blocktype: plans * generate configdata for the blocktype: plans
* *
* @param array $fields holding each chunk of data between the ; in the behat data column * @param array $sortedfields holding each chunk of data between the ; in the behat data column
* @param string $ownertype of user * @param string $ownertype of user
* @param string $ownerid of the user * @param string $ownerid of the user
* @return array $configdata of key and values of db table * @return array $configdata of key and values of db table
...@@ -1246,7 +1302,7 @@ EOD; ...@@ -1246,7 +1302,7 @@ EOD;
* As well as going thorugh the general fields in the data column of the table, * As well as going thorugh the general fields in the data column of the table,
* an ArtefactTypeProfileIcon is created as there are none created in bulk. * an ArtefactTypeProfileIcon is created as there are none created in bulk.
* *
* @param array $fields holding each chunk of data between the ; in the behat data column * @param array $sortedfields holding each chunk of data between the ; in the behat data column
* @param string $ownertype of user * @param string $ownertype of user
* @param string $ownerid of the user * @param string $ownerid of the user
* @return array $configdata of key and values of db table * @return array $configdata of key and values of db table
...@@ -1296,7 +1352,9 @@ EOD; ...@@ -1296,7 +1352,9 @@ EOD;
/** /**
* generate configdata for blocktype: recentforumposts * generate configdata for blocktype: recentforumposts
* *
* @param array $fields holding each chunk of data between the ; in the behat data column * The recentforumposts blocktype displays forumposts for a given group.
*
* @param array $sortedfields holding each chunk of data between the ; in the behat data column
* @param string $ownertype of user * @param string $ownertype of user
* @param string $ownerid of the user * @param string $ownerid of the user
* @return array $configdata of key and values of db table * @return array $configdata of key and values of db table
...@@ -1323,9 +1381,36 @@ EOD; ...@@ -1323,9 +1381,36 @@ EOD;
return $configdata; return $configdata;
} }
/**
* generate configdata for the blocktype: recentposts
*
* The recentposts blocktypes displays a list of recent posts for the given
* journal/blog name.
*
* @param array $sortedfields holding each chunk of data between the ; in the behat data column
* @param string $ownertype of user
* @param string $ownerid of the user
* @return array $configdata of key and values of db table
*/
public static function generate_configdata_recentposts($sortedfields, $ownertype, $ownerid) {
$configdata = array();
foreach ($sortedfields as $key => $value) {
if ($key == 'maxposts') {
$configdata['count'] = $value > 0 ? $value : 10;
}
if ($key == 'journaltitle') {
if (!$blogid = get_field('artefact', 'id', 'title', $value, 'artefacttype','blog')) {
throw new SystemException("A blog/journal named " . $value . " doesn't exist!");
}
$configdata['artefactids'][] = $blogid;
}
}
return $configdata;
}
/** /**
* generate configdata for the blocktype: resumefield * generate configdata for the blocktype: resumefield
* @param array $fields holding each chunk of data between the ; in the behat data column * @param array $sortedfields holding each chunk of data between the ; in the behat data column
* @param string $ownertype of user * @param string $ownertype of user
* @param string $ownerid of the user * @param string $ownerid of the user
* @return array $configdata of key and values for db table * @return array $configdata of key and values for db table
...@@ -1345,7 +1430,7 @@ EOD; ...@@ -1345,7 +1430,7 @@ EOD;
/** /**
* generate configdata for the blocktype: social profile * generate configdata for the blocktype: social profile
* @param array $fields holding each chunk of data between the ; in the behat data column * @param array $sortedfields holding each chunk of data between the ; in the behat data column
* @param string $ownertype of user * @param string $ownertype of user
* @param string $ownerid of the user * @param string $ownerid of the user
* @return array $configdata of key and values for db table * @return array $configdata of key and values for db table
...@@ -1355,7 +1440,6 @@ EOD; ...@@ -1355,7 +1440,6 @@ EOD;
if ($key == 'sns') { if ($key == 'sns') {
//split the values for multiple social profile creation //split the values for multiple social profile creation
$medialist = explode(',', $value); $medialist = explode(',', $value);
$value = array();
foreach($medialist as $media) { foreach($medialist as $media) {
$newprofile = new ArtefactTypeSocialprofile(); $newprofile = new ArtefactTypeSocialprofile();
$newprofile->set('owner', $ownerid); $newprofile->set('owner', $ownerid);
...@@ -1371,6 +1455,35 @@ EOD; ...@@ -1371,6 +1455,35 @@ EOD;
} }
} }
/**
* generate configdata for the blocktype: taggedposts
*
* The blocktype taggedposts displays a list of Journal Entries with the
* given tag
*
* @param array $sortedfields holding each chunk of data between the ; in the behat data column
* @return array $configdata of key and values for db table
*/
public static function generate_configdata_taggedposts($sortedfields) {
$configdata = array();
foreach ($sortedfields as $key => $value) {
if ($key == 'maxposts') {
$configdata['count'] = $value > 0 ? $value : 10;
}
if ($key == 'tags') {
$tags = explode(',',$value);
$configdata['tagselect'] = $tags;
}
if ($key == 'showfullentries') {
$configdata['full'] = strtolower($value) == 'no' ? 1 : 0;
}
if ($key == 'copytype') {
$configdata[$key] = strtolower($value) == 'nocopy' ? $value : 'tagsonly';
}
}
return $configdata;
}
/** /**
* generate configdata for the blocktype: text * generate configdata for the blocktype: text
* @param string inside data column in behat test * @param string inside data column in behat test
...@@ -1393,7 +1506,7 @@ EOD; ...@@ -1393,7 +1506,7 @@ EOD;
* holding an html artefact * holding an html artefact
* NOTE:the title of a textbox block is the same as the html artefact the textbox it is associated with; not the title of a block instance * NOTE:the title of a textbox block is the same as the html artefact the textbox it is associated with; not the title of a block instance
* *
* @param array $fields holding each chunk of data between the ; in the behat data column * @param array $sortedfields holding each chunk of data between the ; in the behat data column
* @param string $ownertype of user * @param string $ownertype of user
* @param string $ownerid of the user * @param string $ownerid of the user
* @param string $title of block to be created* (when copytoall is true) * @param string $title of block to be created* (when copytoall is true)
...@@ -2472,12 +2585,18 @@ EOD; ...@@ -2472,12 +2585,18 @@ EOD;
public function create_educationhistory($record) { public function create_educationhistory($record) {
$itemdata = array(); $itemdata = array();
$userid = $this->get_user_id($record['user']); $userid = $this->get_user_id($record['user']);
$artefact = null;
// create artefact if ($artefactid = get_field('artefact', 'id', 'artefacttype', 'educationhistory')) {
$artefact = new ArtefactTypeEducationhistory(); $artefact = new ArtefactTypeEducationhistory($artefactid, null);
$artefact->set('owner', $this->get_user_id($record['user'])); $itemdata['artefact'] = $artefact->get('id');
$artefact->commit(); }
$itemdata['artefact'] = $artefact->get('id'); else {
$artefact = new ArtefactTypeEducationhistory();
$artefact->set('owner', $this->get_user_id($record['user']));
$artefact->commit();
$itemdata['artefact'] = $artefact->get('id');
}
$formelements = ArtefactTypeEducationhistory::get_addform_elements(); $formelements = ArtefactTypeEducationhistory::get_addform_elements();
foreach ($formelements as $element => $value) { foreach ($formelements as $element => $value) {
......
...@@ -160,48 +160,37 @@ Background: ...@@ -160,48 +160,37 @@ Background:
| Comments | comment | Page One | no | | | Comments | comment | Page One | no | |
| Peer Assessment | peerassessment | Page One | auto | | | Peer Assessment | peerassessment | Page One | auto | |
| Creative Commons | creativecommons| Page One | no | commercialuse=yes;license=3.0;allowmods=no | | Creative Commons | creativecommons| Page One | no | commercialuse=yes;license=3.0;allowmods=no |
| Navigation | navigation | Page One | no | collection=collection one;copytoall=yes | | Navigation | navigation | Page One | no | collection=collection one;copytoall=yes |
| Plans | plans | Page One | no | plans=Plan One,Plan Two;tasksdisplaycount=10 | | Plans | plans | Page One | no | plans=Plan One,Plan Two;tasksdisplaycount=10 |
| Internal Media: Video| internalmedia | Page One | no | attachment=testvid3.mp4 | | Internal Media: Video| internalmedia | Page One | no | attachment=testvid3.mp4 |
| Internal Media: Audio| internalmedia | Page One | no | attachment=mahara.mp3 | | Internal Media: Audio| internalmedia | Page One | no | attachment=mahara.mp3 |
| Pdf | pdf | Page Two | no | attachment=mahara_about.pdf | | Recent journal entries| recentposts | Page One | no | journaltitle=journal1;maxposts=10 |
| Recent Forum Posts |recentforumposts| Page Two | no | groupname=Group1;maxposts=3 | | Tagged journal entries| taggedposts | Page One | no | tags=cats; maxposts=5;showfullentries=yes;copytype=nocopy |
| External Video | externalvideo | Page Two | no | source=https://youtu.be/yRxFm70nOrY |
| Note/Textbox 1 | textbox | Page Two | no | notetitle=secretnote;text=ma ha ha ha ra!;tags=mahara,araham;attachments=Image3.png,Image2.png,Image1.jpg;allowcomments=yes |
| Note/textbox ref:1 | textbox | Page Two | no | existingnote=secretnote |
| Note/Textbox copy:1 | textbox | Page Two | no | existingnote=secretnote;allowcomments=yes;copynote=true;notetitle=newsecretnote |
| Profile Information | profileinfo | Page Two | no | introtext =Mahara unicorn here! Nice to meet you :);profileicon=Image1.jpg |
| Profile Information | profileinfo | Page Two | no | introtext =Mahara unicorn here! Nice to meet you :);profileicon=Image2.png |
| Résumé | entireresume | Page Two | no | tags=mahara |
| Résumé: Employment Hist.| resumefield | Page Two | no | artefacttype=employmenthistory |
| Résumé: Personal Goal | resumefield | Page Two | no | artefacttype=personalgoal |
| Résumé: Work Skill | resumefield | Page Two | no | artefacttype=workskill |
| Résumé: Interest | resumefield | Page Two | no | artefacttype=interest |
| GoogleApps: Google Maps | googleapps | Page Two | no | googleapp=<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2997.861064367898!2d174.77176941597108!3d-41.29012814856559!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x6d38afd6326bfda5%3A0x5c0d858838e52d7a!2sCatalyst!5e0!3m2!1sen!2snz!4v1550707486290" width="800" height="600" frameborder="0" style="border:0" allowfullscreen></iframe>;height=100;tags=cat,dog,monkeys |
| GoogleApps: Google Calen| googleapps | Page Two | no | googleapp=https://calendar.google.com/calendar/embed?src=en.new_zealand%23holiday%40group.v.calendar.google.com&ctz=Pacific%2FAuckland |
Scenario: Login as admin to change upload settings And the following "blocks" exist:
# To allow users to upload specific internal media types | title | type | page |retractable | data |
Given I log in as "admin" with password "Kupuh1pa!" | Pdf | pdf | Page Two | no | attachment=mahara_about.pdf |
And I go to "/admin/extensions/pluginconfig.php?plugintype=blocktype&pluginname=file/internalmedia" | Recent Forum Posts |recentforumposts| Page Two | no | groupname=Group1;maxposts=3 |
And I set the following fields to these values: | External Video | externalvideo | Page Two | no | source=https://youtu.be/k5t5PD5F8Wo |
| 3GPP media file | 1 | | Note/Textbox 1 | textbox | Page Two | no | notetitle=secretnote;text=ma ha ha ha ra!;tags=mahara,araham;attachments=Image3.png,Image2.png,Image1.jpg;allowcomments=yes |
| AVI video file | 1 | | Note/textbox ref:1 | textbox | Page Two | no | existingnote=secretnote |
| FLV flash movie | 1 | | Note/Textbox copy:1 | textbox | Page Two | no | existingnote=secretnote;allowcomments=yes;copynote=true;notetitle=newsecretnote |
| MP3 audio file | 1 | | Profile Information | profileinfo | Page Two | no | introtext =Mahara unicorn here! Nice to meet you :);profileicon=Image1.jpg |
| MP4 media file | 1 | | Profile Information | profileinfo | Page Two | no | introtext =Mahara unicorn here! Nice to meet you :);profileicon=Image2.png |
| MPEG movie | 1 | | Résumé | entireresume | Page Two | no | tags=mahara |
| OGA audio file | 1 | | Résumé: Personal Goal | resumefield | Page Two | no | artefacttype=personalgoal |
| OGG Vorbis audio file | 1 | | Résumé: Work Skill | resumefield | Page Two | no | artefacttype=workskill |
| OGV video file | 1 | | Résumé: Interest | resumefield | Page Two | no | artefacttype=interest |
| QuickTime movie | 1 | | Résumé: Achievements | resumefield | Page Two | no | artefacttype=certification |
| WEBM video file | 1 | | Résumé: Employment Hist.| resumefield | Page Two | no | artefacttype=employmenthistory |
| WMV video file | 1 | | Résumé: Books | resumefield | Page Two | no | artefacttype=book |
And I press "Save" | Résumé: Memberships | resumefield | Page Two | no | artefacttype=membership |
And I log out | Résumé: Education Hist. | resumefield | Page Two | no | artefacttype=educationhistory |
| GoogleApps: Google Maps | googleapps | Page Two | no | googleapp=<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2997.861064367898!2d174.77176941597108!3d-41.29012814856559!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x6d38afd6326bfda5%3A0x5c0d858838e52d7a!2sCatalyst!5e0!3m2!1sen!2snz!4v1550707486290" width="800" height="600" frameborder="0" style="border:0" allowfullscreen></iframe>;height=200;tags=cat,dog,monkeys |
| GoogleApps: Google Cal. | googleapps | Page Two | no | googleapp=https://calendar.google.com/calendar/embed?src=en.new_zealand%23holiday%40group.v.calendar.google.com&ctz=Pacific%2FAuckland |
Then I log in as "UserA" with password "Kupuh1pa!" Scenario: Login as admin to change upload settings
Given I log in as "UserA" with password "Kupuh1pa!"
And I go to portfolio page "Page UserA" And I go to portfolio page "Page UserA"
And I go to portfolio page "Page Grp1" And I go to portfolio page "Page Grp1"
And I go to portfolio page "Page One" And I go to portfolio page "Page One"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment