11479Szelenkov@nginx.comfrom unit.applications.lang.php import TestApplicationPHP 2*1596Szelenkov@nginx.comfrom conftest import option 3*1596Szelenkov@nginx.com 41479Szelenkov@nginx.com 51479Szelenkov@nginx.comclass TestPHPTargets(TestApplicationPHP): 61479Szelenkov@nginx.com prerequisites = {'modules': {'php': 'any'}} 71479Szelenkov@nginx.com 81479Szelenkov@nginx.com def test_php_application_targets(self): 9*1596Szelenkov@nginx.com assert 'success' in self.conf( 10*1596Szelenkov@nginx.com { 11*1596Szelenkov@nginx.com "listeners": {"*:7080": {"pass": "routes"}}, 12*1596Szelenkov@nginx.com "routes": [ 13*1596Szelenkov@nginx.com { 14*1596Szelenkov@nginx.com "match": {"uri": "/1"}, 15*1596Szelenkov@nginx.com "action": {"pass": "applications/targets/1"}, 16*1596Szelenkov@nginx.com }, 17*1596Szelenkov@nginx.com { 18*1596Szelenkov@nginx.com "match": {"uri": "/2"}, 19*1596Szelenkov@nginx.com "action": {"pass": "applications/targets/2"}, 20*1596Szelenkov@nginx.com }, 21*1596Szelenkov@nginx.com {"action": {"pass": "applications/targets/default"}}, 22*1596Szelenkov@nginx.com ], 23*1596Szelenkov@nginx.com "applications": { 24*1596Szelenkov@nginx.com "targets": { 25*1596Szelenkov@nginx.com "type": "php", 26*1596Szelenkov@nginx.com "processes": {"spare": 0}, 271479Szelenkov@nginx.com "targets": { 28*1596Szelenkov@nginx.com "1": { 29*1596Szelenkov@nginx.com "script": "1.php", 30*1596Szelenkov@nginx.com "root": option.test_dir + "/php/targets", 31*1596Szelenkov@nginx.com }, 32*1596Szelenkov@nginx.com "2": { 33*1596Szelenkov@nginx.com "script": "2.php", 34*1596Szelenkov@nginx.com "root": option.test_dir + "/php/targets/2", 351479Szelenkov@nginx.com }, 36*1596Szelenkov@nginx.com "default": { 37*1596Szelenkov@nginx.com "index": "index.php", 38*1596Szelenkov@nginx.com "root": option.test_dir + "/php/targets", 39*1596Szelenkov@nginx.com }, 40*1596Szelenkov@nginx.com }, 41*1596Szelenkov@nginx.com } 42*1596Szelenkov@nginx.com }, 43*1596Szelenkov@nginx.com } 441479Szelenkov@nginx.com ) 451479Szelenkov@nginx.com 46*1596Szelenkov@nginx.com assert self.get(url='/1')['body'] == '1' 47*1596Szelenkov@nginx.com assert self.get(url='/2')['body'] == '2' 48*1596Szelenkov@nginx.com assert self.get(url='/blah')['status'] == 503 # TODO 404 49*1596Szelenkov@nginx.com assert self.get(url='/')['body'] == 'index' 501479Szelenkov@nginx.com 51*1596Szelenkov@nginx.com assert 'success' in self.conf( 52*1596Szelenkov@nginx.com "\"1.php\"", 'applications/targets/targets/default/index' 53*1596Szelenkov@nginx.com ), 'change targets index' 54*1596Szelenkov@nginx.com assert self.get(url='/')['body'] == '1' 551479Szelenkov@nginx.com 56*1596Szelenkov@nginx.com assert 'success' in self.conf_delete( 57*1596Szelenkov@nginx.com 'applications/targets/targets/default/index' 58*1596Szelenkov@nginx.com ), 'remove targets index' 59*1596Szelenkov@nginx.com assert self.get(url='/')['body'] == 'index' 601479Szelenkov@nginx.com 611479Szelenkov@nginx.com def test_php_application_targets_error(self): 62*1596Szelenkov@nginx.com assert 'success' in self.conf( 63*1596Szelenkov@nginx.com { 64*1596Szelenkov@nginx.com "listeners": { 65*1596Szelenkov@nginx.com "*:7080": {"pass": "applications/targets/default"} 66*1596Szelenkov@nginx.com }, 67*1596Szelenkov@nginx.com "applications": { 68*1596Szelenkov@nginx.com "targets": { 69*1596Szelenkov@nginx.com "type": "php", 70*1596Szelenkov@nginx.com "processes": {"spare": 0}, 711479Szelenkov@nginx.com "targets": { 72*1596Szelenkov@nginx.com "default": { 73*1596Szelenkov@nginx.com "index": "index.php", 74*1596Szelenkov@nginx.com "root": option.test_dir + "/php/targets", 751479Szelenkov@nginx.com }, 76*1596Szelenkov@nginx.com }, 77*1596Szelenkov@nginx.com } 78*1596Szelenkov@nginx.com }, 79*1596Szelenkov@nginx.com } 80*1596Szelenkov@nginx.com ), 'initial configuration' 81*1596Szelenkov@nginx.com assert self.get()['status'] == 200 821479Szelenkov@nginx.com 83*1596Szelenkov@nginx.com assert 'error' in self.conf( 84*1596Szelenkov@nginx.com {"pass": "applications/targets/blah"}, 'listeners/*:7080' 85*1596Szelenkov@nginx.com ), 'invalid targets pass' 86*1596Szelenkov@nginx.com assert 'error' in self.conf( 87*1596Szelenkov@nginx.com '"' + option.test_dir + '/php/targets\"', 88*1596Szelenkov@nginx.com 'applications/targets/root', 89*1596Szelenkov@nginx.com ), 'invalid root' 90*1596Szelenkov@nginx.com assert 'error' in self.conf( 91*1596Szelenkov@nginx.com '"index.php"', 'applications/targets/index' 92*1596Szelenkov@nginx.com ), 'invalid index' 93*1596Szelenkov@nginx.com assert 'error' in self.conf( 94*1596Szelenkov@nginx.com '"index.php"', 'applications/targets/script' 95*1596Szelenkov@nginx.com ), 'invalid script' 96*1596Szelenkov@nginx.com assert 'error' in self.conf_delete( 97*1596Szelenkov@nginx.com 'applications/targets/default/root' 98*1596Szelenkov@nginx.com ), 'root remove' 99