:octocat: proper overflow test & coverage

This commit is contained in:
codemasher
2020-02-19 20:47:08 +01:00
parent 577e43a2be
commit 2dde546ef9
3 changed files with 16 additions and 2 deletions
+2 -2
View File
@@ -181,9 +181,9 @@ abstract class QRDataAbstract implements QRDataInterface{
$this->write($data);
// there was an error writing the BitBuffer data, which is... unlikely.
// overflow, likely caused due to invalid version setting
if($this->bitBuffer->length > $MAX_BITS){
throw new QRCodeException(sprintf('code length overflow. (%d > %d bit)', $this->bitBuffer->length, $MAX_BITS)); // @codeCoverageIgnore
throw new QRCodeDataException(sprintf('code length overflow. (%d > %d bit)', $this->bitBuffer->length, $MAX_BITS));
}
// end code.
+6
View File
@@ -60,4 +60,10 @@ abstract class DatainterfaceTestAbstract extends QRTestAbstract{
$this->getMethod('getMinimumVersion')->invoke($this->dataInterface);
}
public function testCodeLengthOverflowException(){
$this->expectException(QRCodeDataException::class);
$this->expectExceptionMessage('code length overflow');
$this->dataInterface->setData(\str_repeat('0', 1337));
}
}
+8
View File
@@ -49,4 +49,12 @@ class KanjiTest extends DatainterfaceTestAbstract{
$this->dataInterface->setData('Ã');
}
public function testCodeLengthOverflowException(){
$this->expectException(QRCodeDataException::class);
$this->expectExceptionMessage('code length overflow');
$this->dataInterface->setData(\str_repeat('荷', 1337));
}
}