Skip to content
Snippets Groups Projects
Commit 8de171cf authored by Yutong Li's avatar Yutong Li Committed by Yas Naoi
Browse files

Issue #3245877 by yutong.li, yas: Add test cases for VMware Admin Setting forms (Settings)

parent b16ba039
No related branches found
No related tags found
No related merge requests found
<?php
namespace Drupal\Tests\vmware\Functional\Config;
use Drupal\Tests\vmware\Functional\VmwareTestBase;
use Drupal\Tests\vmware\Traits\VmwareTestFormDataTrait;
/**
* Test Case class for VMware Cloud Admin Setting forms.
*
* @group VMware
*/
class VmwareAdminSettings extends VmwareTestBase {
use VmwareTestFormDataTrait;
public const VMWARE_ADMIN_SETTINGS_REPEAT_COUNT = 2;
/**
* Get permissions of login user.
*
* @return array
* permissions of login user.
*/
protected function getPermissions(): array {
return [
'administer vmware',
'administer site configuration',
];
}
/**
* Test for VMwareAdminSettings.
*
* @param string $setting_type
* The setting type id.
* @param array $edit
* The array of input data.
*/
protected function runVmwareAdminSettings($setting_type, array $edit): void {
$this->drupalGet("/admin/config/services/cloud/vmware/{$setting_type}");
$this->assertNoErrorMessage();
$this->submitForm(
$edit,
$this->t('Save')
);
$this->assertNoErrorMessage();
}
/**
* Test VMware Admin Setting forms on Settings.
*/
public function testVmwareAdminSettings(): void {
$edit = $this->createVmwareSettingsTestFormData(self::VMWARE_ADMIN_SETTINGS_REPEAT_COUNT);
for ($i = 0; $i < self::VMWARE_ADMIN_SETTINGS_REPEAT_COUNT; $i++) {
$edit[$i] = array_intersect_key($edit[$i], array_flip(
(array) array_rand($edit[$i], random_int(1, count($edit[$i])))
));
$this->runVmwareAdminSettings('settings', $edit[$i]);
}
}
}
......@@ -166,4 +166,39 @@ trait VmwareTestFormDataTrait {
return $data;
}
/**
* Get the items per page on Pager options, Views, VMware Settings.
*
* @return array
* Array of items per page.
*/
protected function getItemsPerPage(): array {
return [10, 15, 20, 25, 50, 100];
}
/**
* Create an array of random input data for Settings.
*
* @return array
* The array including random input data.
*/
public function createVmwareSettingsTestFormData($repeat_count = 1): array {
$config_factory = \Drupal::configFactory();
$config = $config_factory->getEditable('vmware.settings');
$items_per_page = $this->getItemsPerPage();
$edit = [];
for ($i = 0; $i < $repeat_count; $i++) {
$edit[] = [
'vmware_view_expose_items_per_page' => !$config->get('vmware_view_expose_items_per_page'),
'vmware_view_items_per_page' => $items_per_page[array_rand($items_per_page)],
'vmware_update_resources_queue_cron_time' => random_int(1, 9999),
'vmware_queue_limit' => random_int(1, 50),
];
}
return $edit;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment