// Create a test file that exceeds the maximum POST size with 1 kilobyte.
$post_max_size = Bytes::
toNumber(ini_get('post_max_size'
));
$invalid_file = 'public://exceeding_post_max_size.bin';
$file =
fopen($invalid_file, 'wb'
);
fseek($file,
$post_max_size + 1024
);
fwrite($file, 0x0
);
fclose($file);
// Go to the node creation form and try to upload the test file.
$this->
drupalGet('node/add/article'
);
$page =
$session->
getPage();
$page->
attachFileToField("files[field_file_0]",
$this->fileSystem->
realpath($invalid_file));
// An error message should appear informing the user that the file exceeded
// the maximum file size. The error message includes the actual file size
// limit which depends on the current environment, so we check for a part
// of the message.
$this->
assertSession()->
statusMessageContainsAfterWait('An unrecoverable error occurred. The uploaded file likely exceeded the maximum file size', 'error'
);
// Now upload a valid file and check that the error message disappears.
$valid_file =
$this->
generateFile('not_exceeding_post_max_size', 8, 8
);
$page->
attachFileToField("files[field_file_0]",
$this->fileSystem->
realpath($valid_file));
$this->
assertSession()->
waitForElement('named',
['id_or_name', 'field_file_0_remove_button'
]);