summaryrefslogtreecommitdiff
path: root/ext/intl/tests/formatter_fail.phpt
blob: 0a8d7f398b2ee40315698a3d71ea3aa1401b5ae9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
--TEST--
numfmt creation failures
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
--FILE--
<?php

function err($fmt) {
	if(!$fmt) {
		echo var_export(intl_get_error_message(), true)."\n";
	}
}

function print_exception($e) {
	echo "\n" . get_class($e) . ": " . $e->getMessage()
       . " in " . $e->getFile() . " on line " . $e->getLine() . "\n";
}

function crt($t, $l, $s) {
	switch(true) {
		case $t == "O":
			try {
				return new NumberFormatter($l, $s);
			} catch (Throwable $e) {
				print_exception($e);
				return null;
			}
			break;
		case $t == "C":
			try {
				return NumberFormatter::create($l, $s);
			} catch (Throwable $e) {
				print_exception($e);
				return null;
			}
			break;
		case $t == "P":
			try {
				return numfmt_create($l, $s);
			} catch (Throwable $e) {
				print_exception($e);
				return null;
			}
			break;
	}
}

$args = array(
	array(null, null),
	array("whatever", 1234567),
	array(array(), array()),
	array("en", -1),
	array("en_US", NumberFormatter::PATTERN_RULEBASED),
);

try {
	$fmt = new NumberFormatter();
} catch (TypeError $e) {
	print_exception($e);
	$fmt = null;
}
err($fmt);
try {
	$fmt = numfmt_create();
} catch (TypeError $e) {
	print_exception($e);
	$fmt = null;
}
err($fmt);
try {
	$fmt = NumberFormatter::create();
} catch (TypeError $e) {
	print_exception($e);
	$fmt = null;
}
err($fmt);

foreach($args as $arg) {
	$fmt = crt("O", $arg[0], $arg[1]);
	err($fmt);
	$fmt = crt("C", $arg[0], $arg[1]);
	err($fmt);
	$fmt = crt("P", $arg[0], $arg[1]);
	err($fmt);
}

?>
--EXPECTF--
ArgumentCountError: NumberFormatter::__construct() expects at least 2 parameters, 0 given in %s on line %d
'U_ZERO_ERROR'

ArgumentCountError: numfmt_create() expects at least 2 parameters, 0 given in %s on line %d
'U_ZERO_ERROR'

ArgumentCountError: NumberFormatter::create() expects at least 2 parameters, 0 given in %s on line %d
'U_ZERO_ERROR'

IntlException: Constructor failed in %s on line %d
'numfmt_create: number formatter creation failed: U_UNSUPPORTED_ERROR'
'numfmt_create: number formatter creation failed: U_UNSUPPORTED_ERROR'
'numfmt_create: number formatter creation failed: U_UNSUPPORTED_ERROR'

TypeError: NumberFormatter::__construct() expects parameter 1 to be string, array given in %s on line %d
'U_ZERO_ERROR'

TypeError: NumberFormatter::create() expects parameter 1 to be string, array given in %s on line %d
'U_ZERO_ERROR'

TypeError: numfmt_create() expects parameter 1 to be string, array given in %s on line %d
'U_ZERO_ERROR'

IntlException: Constructor failed in %s on line %d
'numfmt_create: number formatter creation failed: U_UNSUPPORTED_ERROR'
'numfmt_create: number formatter creation failed: U_UNSUPPORTED_ERROR'
'numfmt_create: number formatter creation failed: U_UNSUPPORTED_ERROR'

IntlException: Constructor failed in %s on line %d
'numfmt_create: number formatter creation failed: U_MEMORY_ALLOCATION_ERROR'
'numfmt_create: number formatter creation failed: U_MEMORY_ALLOCATION_ERROR'
'numfmt_create: number formatter creation failed: U_MEMORY_ALLOCATION_ERROR'