1--TEST--
2radius_put_string() with tag
3--INI--
4display_errors=1
5error_reporting=22527
6--SKIPIF--
7<?php
8include dirname(__FILE__).'/server/fake_server.php';
9
10if (\RADIUS\FakeServer\FakeServer::skip()) {
11    die('SKIP: pcntl, radius and sockets extensions required');
12}
13?>
14--FILE--
15<?php
16include dirname(__FILE__).'/server/fake_server.php';
17
18$server = new \RADIUS\FakeServer\FakeServer;
19$res = $server->getAuthResource();
20
21$request = \RADIUS\FakeServer\Request::expect(RADIUS_ACCESS_REQUEST, array(
22    \RADIUS\FakeServer\Attribute\expect(RADIUS_USER_NAME, 'foo', 10),
23    \RADIUS\FakeServer\Attribute\expect(RADIUS_LOGIN_IP_HOST, 'abcdefghijklmnopqrstuvwxyz', 10, true),
24));
25
26$response = new \RADIUS\FakeServer\RadiusResponse;
27$response->code = RADIUS_ACCESS_REJECT;
28$response->attributes = array(
29    \RADIUS\FakeServer\Attribute\expect(RADIUS_REPLY_MESSAGE, 'Go away'),
30);
31
32$server->addTransaction($request, $response);
33$server->handle();
34
35var_dump(radius_put_string($res, RADIUS_USER_NAME, 'foo', RADIUS_OPTION_TAGGED, -1));
36var_dump(radius_put_string($res, RADIUS_USER_NAME, 'foo', RADIUS_OPTION_TAGGED, 256));
37var_dump(radius_put_string($res, RADIUS_USER_NAME, 'foo', RADIUS_OPTION_TAGGED, 10));
38var_dump(radius_put_string($res, RADIUS_LOGIN_IP_HOST, 'abcdefghijklmnopqrstuvwxyz', RADIUS_OPTION_SALT | RADIUS_OPTION_TAGGED, 10));
39
40radius_create_request($res, RADIUS_ACCESS_REQUEST);
41var_dump(radius_put_string($res, RADIUS_USER_NAME, 'foo', RADIUS_OPTION_TAGGED, 10));
42var_dump(radius_put_string($res, RADIUS_LOGIN_IP_HOST, 'abcdefghijklmnopqrstuvwxyz', RADIUS_OPTION_SALT | RADIUS_OPTION_TAGGED, 10));
43radius_put_string($res, RADIUS_USER_PASSWORD, 'bar');
44radius_send_request($res);
45
46var_dump($server->wait());
47?>
48--EXPECTF--
49Notice: Tag must be between 0 and 255 in %s on line %d
50bool(false)
51
52Notice: Tag must be between 0 and 255 in %s on line %d
53bool(false)
54bool(false)
55bool(false)
56bool(true)
57bool(true)
58int(0)
59