1--TEST--
2Crypto\Base64::decodeUpdate basic usage.
3--FILE--
4<?php
5
6$data_encoded = <<<EOI
7YWJjZGVmZ2hpamtsbW5vcHFyc3R1disqKl4lJGFiY2RlZmdoaWprbG1ub3BxcnN0
8dXYrKipeJSRhYmNkZWZnaGlqa2xtbm9wcXJzdHV2KyoqXiUkYWJjZGVmZ2hpamts
9bW5vcHFyc3R1disqKl4lJGFiY2RlZmdoaWprbG1ub3BxcnN0dXYrKipeJSRhYmNk
10ZWZnaGlqa2xtbm9wcXJzdHV2KyoqXiUk
11EOI;
12
13$data_chunks = str_split($data_encoded, 20);
14
15// try state exception
16$b64 = new Crypto\Base64;
17$b64->encodeUpdate("abc");
18try {
19	$b64->decodeUpdate($data_encoded);
20}
21catch (Crypto\Base64Exception $e) {
22	if ($e->getCode() == Crypto\Base64Exception::DECODE_UPDATE_FORBIDDEN) {
23		echo "DECODE UPDATE STATUS EXCEPTION\n";
24	}
25}
26
27$b64 = new Crypto\Base64;
28echo $b64->decodeUpdate($data_encoded) . "\n";
29
30$b64 = new Crypto\Base64;
31$data = '';
32foreach ($data_chunks as $data_chunk) {
33	$data .= $b64->decodeUpdate($data_chunk);
34}
35echo "$data\n";
36
37?>
38--EXPECT--
39DECODE UPDATE STATUS EXCEPTION
40abcdefghijklmnopqrstuv+**^%$abcdefghijklmnopqrstuv+**^%$abcdefghijklmnopqrstuv+**^%$abcdefghijklmnopqrstuv+**^%$abcdefghijklmnopqrstuv+**^%$abcdefghijklmnopqrstuv+**^%$
41abcdefghijklmnopqrstuv+**^%$abcdefghijklmnopqrstuv+**^%$abcdefghijklmnopqrstuv+**^%$abcdefghijklmnopqrstuv+**^%$abcdefghijklmnopqrstuv+**^%$abcdefghijklmnopqrstuv+**^%$
42