1<?php 2// 3// Copyright (c) ZeroC, Inc. All rights reserved. 4// 5 6$NS = function_exists("Ice\\initialize"); 7require_once('Test.php'); 8 9function allTests($helper) 10{ 11 $ref = sprintf("test:%s", $helper->getTestEndpoint()); 12 $communicator = $helper->communicator(); 13 $obj = $communicator->stringToProxy($ref); 14 test($obj != null); 15 $proxy = $obj->ice_checkedCast("::Test::TestIntf"); 16 test($proxy != null); 17 18 global $NS; 19 20 $ByteConst1 = $NS ? constant("Test\\ByteConst1") : constant("Test_ByteConst1"); 21 $ShortConst1 = $NS ? constant("Test\\ShortConst1") : constant("Test_ShortConst1"); 22 $IntConst1 = $NS ? constant("Test\\IntConst1") : constant("Test_IntConst1"); 23 $LongConst1 = $NS ? constant("Test\\LongConst1") : constant("Test_LongConst1"); 24 25 $ByteConst2 = $NS ? constant("Test\\ByteConst2") : constant("Test_ByteConst2"); 26 $ShortConst2 = $NS ? constant("Test\\ShortConst2") : constant("Test_ShortConst2"); 27 $IntConst2 = $NS ? constant("Test\\IntConst2") : constant("Test_IntConst2"); 28 $LongConst2 = $NS ? constant("Test\\LongConst2") : constant("Test_LongConst2"); 29 30 $benum1 = $NS ? constant("Test\\ByteEnum::benum1") : constant("Test_ByteEnum::benum1"); 31 $benum2 = $NS ? constant("Test\\ByteEnum::benum2") : constant("Test_ByteEnum::benum2"); 32 $benum3 = $NS ? constant("Test\\ByteEnum::benum3") : constant("Test_ByteEnum::benum3"); 33 $benum4 = $NS ? constant("Test\\ByteEnum::benum4") : constant("Test_ByteEnum::benum4"); 34 $benum5 = $NS ? constant("Test\\ByteEnum::benum5") : constant("Test_ByteEnum::benum5"); 35 $benum6 = $NS ? constant("Test\\ByteEnum::benum6") : constant("Test_ByteEnum::benum6"); 36 $benum7 = $NS ? constant("Test\\ByteEnum::benum7") : constant("Test_ByteEnum::benum7"); 37 $benum8 = $NS ? constant("Test\\ByteEnum::benum8") : constant("Test_ByteEnum::benum8"); 38 $benum9 = $NS ? constant("Test\\ByteEnum::benum9") : constant("Test_ByteEnum::benum9"); 39 $benum10 = $NS ? constant("Test\\ByteEnum::benum10") : constant("Test_ByteEnum::benum10"); 40 $benum11 = $NS ? constant("Test\\ByteEnum::benum11") : constant("Test_ByteEnum::benum11"); 41 42 $senum1 = $NS ? constant("Test\\ShortEnum::senum1") : constant("Test_ShortEnum::senum1"); 43 $senum2 = $NS ? constant("Test\\ShortEnum::senum2") : constant("Test_ShortEnum::senum2"); 44 $senum3 = $NS ? constant("Test\\ShortEnum::senum3") : constant("Test_ShortEnum::senum3"); 45 $senum4 = $NS ? constant("Test\\ShortEnum::senum4") : constant("Test_ShortEnum::senum4"); 46 $senum5 = $NS ? constant("Test\\ShortEnum::senum5") : constant("Test_ShortEnum::senum5"); 47 $senum6 = $NS ? constant("Test\\ShortEnum::senum6") : constant("Test_ShortEnum::senum6"); 48 $senum7 = $NS ? constant("Test\\ShortEnum::senum7") : constant("Test_ShortEnum::senum7"); 49 $senum8 = $NS ? constant("Test\\ShortEnum::senum8") : constant("Test_ShortEnum::senum8"); 50 $senum9 = $NS ? constant("Test\\ShortEnum::senum9") : constant("Test_ShortEnum::senum9"); 51 $senum10 = $NS ? constant("Test\\ShortEnum::senum10") : constant("Test_ShortEnum::senum10"); 52 $senum11 = $NS ? constant("Test\\ShortEnum::senum11") : constant("Test_ShortEnum::senum11"); 53 54 $ienum1 = $NS ? constant("Test\\IntEnum::ienum1") : constant("Test_IntEnum::ienum1"); 55 $ienum2 = $NS ? constant("Test\\IntEnum::ienum2") : constant("Test_IntEnum::ienum2"); 56 $ienum3 = $NS ? constant("Test\\IntEnum::ienum3") : constant("Test_IntEnum::ienum3"); 57 $ienum4 = $NS ? constant("Test\\IntEnum::ienum4") : constant("Test_IntEnum::ienum4"); 58 $ienum5 = $NS ? constant("Test\\IntEnum::ienum5") : constant("Test_IntEnum::ienum5"); 59 $ienum6 = $NS ? constant("Test\\IntEnum::ienum6") : constant("Test_IntEnum::ienum6"); 60 $ienum7 = $NS ? constant("Test\\IntEnum::ienum7") : constant("Test_IntEnum::ienum7"); 61 $ienum8 = $NS ? constant("Test\\IntEnum::ienum8") : constant("Test_IntEnum::ienum8"); 62 $ienum9 = $NS ? constant("Test\\IntEnum::ienum9") : constant("Test_IntEnum::ienum9"); 63 $ienum10 = $NS ? constant("Test\\IntEnum::ienum10") : constant("Test_IntEnum::ienum10"); 64 $ienum11 = $NS ? constant("Test\\IntEnum::ienum11") : constant("Test_IntEnum::ienum11"); 65 $ienum12 = $NS ? constant("Test\\IntEnum::ienum12") : constant("Test_IntEnum::ienum12"); 66 67 $red = $NS ? constant("Test\\SimpleEnum::red") : constant("Test_SimpleEnum::red"); 68 $green = $NS ? constant("Test\\SimpleEnum::green") : constant("Test_SimpleEnum::green"); 69 $blue = $NS ? constant("Test\\SimpleEnum::blue") : constant("Test_SimpleEnum::blue"); 70 71 echo "testing enum values... "; 72 flush(); 73 74 test($benum1 == 0); 75 test($benum2 == 1); 76 test($benum3 == $ByteConst1); 77 test($benum4 == $ByteConst1 + 1); 78 test($benum5 == $ShortConst1); 79 test($benum6 == $ShortConst1 + 1); 80 test($benum7 == $IntConst1); 81 test($benum8 == $IntConst1 + 1); 82 test($benum9 == $LongConst1); 83 test($benum10 == $LongConst1 + 1); 84 test($benum11 == $ByteConst2); 85 86 test($senum1 == 3); 87 test($senum2 == 4); 88 test($senum3 == $ByteConst1); 89 test($senum4 == $ByteConst1 + 1); 90 test($senum5 == $ShortConst1); 91 test($senum6 == $ShortConst1 + 1); 92 test($senum7 == $IntConst1); 93 test($senum8 == $IntConst1 + 1); 94 test($senum9 == $LongConst1); 95 test($senum10 == $LongConst1 + 1); 96 test($senum11 == $ShortConst2); 97 98 test($ienum1 == 0); 99 test($ienum2 == 1); 100 test($ienum3 == $ByteConst1); 101 test($ienum4 == $ByteConst1 + 1); 102 test($ienum5 == $ShortConst1); 103 test($ienum6 == $ShortConst1 + 1); 104 test($ienum7 == $IntConst1); 105 test($ienum8 == $IntConst1 + 1); 106 test($ienum9 == $LongConst1); 107 test($ienum10 == $LongConst1 + 1); 108 test($ienum11 == $IntConst2); 109 test($ienum12 == $LongConst2); 110 111 test($red == 0); 112 test($green == 1); 113 test($blue == 2); 114 115 echo "ok\n"; 116 117 echo "testing enum operations... "; 118 flush(); 119 120 $byteEnum = 0; 121 test($proxy->opByte($benum1, $byteEnum) == $benum1); 122 test($byteEnum == $benum1); 123 test($proxy->opByte($benum11, $byteEnum) == $benum11); 124 test($byteEnum == $benum11); 125 126 $shortEnum = 0; 127 test($proxy->opShort($senum1, $shortEnum) == $senum1); 128 test($shortEnum == $senum1); 129 test($proxy->opShort($senum11, $shortEnum) == $senum11); 130 test($shortEnum == $senum11); 131 132 $intEnum = 0; 133 test($proxy->opInt($ienum1, $intEnum) == $ienum1); 134 test($intEnum == $ienum1); 135 test($proxy->opInt($ienum11, $intEnum) == $ienum11); 136 test($intEnum == $ienum11); 137 test($proxy->opInt($ienum12, $intEnum) == $ienum12); 138 test($intEnum == $ienum12); 139 140 $s = 0; 141 test($proxy->opSimple($green, $s) == $green); 142 test($s == $green); 143 144 echo "ok\n"; 145 146 echo "testing enum exceptions... "; 147 flush(); 148 149 try 150 { 151 $proxy->opByte(-1, $byteEnum); // Negative enumerators are not supported 152 test(false); 153 } 154 catch(InvalidArgumentException $ex) 155 { 156 } 157 158 try 159 { 160 $proxy->opByte(2, $byteEnum); // Invalid enumerator 161 test(false); 162 } 163 catch(InvalidArgumentException $ex) 164 { 165 } 166 167 try 168 { 169 $proxy->opByte(128, $byteEnum); // Invalid enumerator 170 test(false); 171 } 172 catch(InvalidArgumentException $ex) 173 { 174 } 175 176 try 177 { 178 $proxy->opShort(-1, $shortEnum); // Negative enumerators are not supported 179 test(false); 180 } 181 catch(InvalidArgumentException $ex) 182 { 183 } 184 185 try 186 { 187 $proxy->opShort(0, $shortEnum); // Invalid enumerator 188 test(false); 189 } 190 catch(InvalidArgumentException $ex) 191 { 192 } 193 194 try 195 { 196 $proxy->opShort(128, $shortEnum); // Invalid enumerator 197 test(false); 198 } 199 catch(InvalidArgumentException $ex) 200 { 201 } 202 203 try 204 { 205 $proxy->opInt(-1, $intEnum); // Negative enumerators are not supported 206 test(false); 207 } 208 catch(InvalidArgumentException $ex) 209 { 210 } 211 212 try 213 { 214 $proxy->opInt(2, $intEnum); // Invalid enumerator 215 test(false); 216 } 217 catch(InvalidArgumentException $ex) 218 { 219 } 220 221 echo "ok\n"; 222 223 return $proxy; 224} 225 226class Client extends TestHelper 227{ 228 function run($args) 229 { 230 try 231 { 232 $communicator = $this->initialize($args); 233 $proxy= allTests($this); 234 $proxy->shutdown(); 235 $communicator->destroy(); 236 } 237 catch(Exception $ex) 238 { 239 $communicator->destroy(); 240 throw $ex; 241 } 242 } 243} 244?> 245