mirror of
https://github.com/chillerlan/php-qrcode.git
synced 2026-09-01 13:08:14 +00:00
:octocat: proper overflow test & coverage
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user