def test_missing_request(self): test_url = base_url + '/mod_twms/twms.cgi?layers=test_weekly_jpg&srs=EPSG:4326&format=image%2Fjpeg&styles=&&width=512&height=512&bbox=-180,-198,108,90' response_code = 400 response_value = 'Bad Request' #if DEBUG: #print 'Using URL: {0}, expecting response code of {1} and response value of {2}'.format(test_url, response_code, response_value) check_code = check_response_code(test_url, response_code, response_value) error = 'The TWMS response code does not match what\'s expected. URL: {0}, Expected Response Code: {1}'.format(test_url, response_code) self.assertTrue(check_code, error)
def test_bad_time_format(self): test_url = base_url + '/mod_twms/twms.cgi?request=GetMap&layers=test_weekly_jpg&srs=EPSG:4326&format=image%2Fjpeg&styles=&&width=512&height=512&bbox=-180,-198,108,90&time=86753-09' response_code = 400 response_value = 'Bad Request' #if DEBUG: #print 'Using URL: {0}, expecting response code of {1} and response value of {2}'.format(test_url, response_code, response_value) check_code = check_response_code(test_url, response_code, response_value) error = 'The TWMS response code does not match what\'s expected. URL: {0}, Expected Response Code: {1}'.format( test_url, response_code) self.assertTrue(check_code, error)
def test_missing_request(self): test_url = base_url + '/test_mod_reproject_twms_err/twms.cgi?layers=test_weekly_jpg&srs=EPSG:4326&format=image%2Fjpeg&styles=&&width=512&height=512&bbox=-180,-198,108,90' response_code = 500 response_value = 'Internal Server Error' #if DEBUG: #print 'Using URL: {0}, expecting response code of {1} and response value of {2}'.format(test_url, response_code, response_value) check_code = check_response_code(test_url, response_code, response_value) error = 'The TWMS response code does not match what\'s expected. URL: {0}, Expected Response Code: {1}'.format( test_url, response_code) self.assertTrue(check_code, error)
def test_wmts_error_handling(self): """ 19. WMTS Error handling """ # MissingParameterValue test params = ('layer=test_weekly_jpg', 'TileMatrix=0', 'Service=WMTS', 'version=1.0.0', 'TileMatrixSet=EPSG4326_16km', 'format=image%2Fjpeg', 'tilecol=0', 'tilerow=0') if DEBUG: print '\nTesting WMTS Error Handling' for i in range(len(params)): param_list = list(params) param_list.pop(i) req_url = 'http://localhost/onearth/test/wmts/wmts.cgi?request=GetTile&time=default&' + '&'.join(param_list) response_code = 400 response_value = 'MissingParameterValue' if DEBUG: print 'Using URL: {0}, expecting response code of {1} and response value of {2}'.format(req_url, response_code, response_value) check_code = check_response_code(req_url, response_code, response_value) error = 'The WMTS response code does not match what\'s expected. URL: {0}, Expected Response Code: {1}'.format(req_url, response_code) self.assertTrue(check_code, error) # InvalidParameterValue tests response_code = 400 response_value = 'InvalidParameterValue' invalid_parameter_urls = ( # Bad SERVICE value 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileCol=0&TileRow=0&time=default&Service=bad_value', # Bad VERSION value 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Format=image%2Fjpeg&TileMatrix=0&TileCol=0&TileRow=0&time=default&Version=bad_value', # Bad LAYER value 'http://localhost/onearth/test/wmts/wmts.cgi?tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileCol=0&TileRow=0&time=default&layer=bad_layer_value', # Bad STYLE value 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileCol=0&TileRow=0&time=default&style=bad_value', # Bad FORMAT value 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&TileMatrix=0&TileCol=0&TileRow=0&time=default&Format=fake_image', # Bad TILEMATRIXSET value 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileCol=0&TileRow=0&time=default&tilematrixset=fake_tilematrixset', # Bad (non-positive integer) TILEMATRIX value 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileCol=0&TileRow=0&time=default&TileMatrix=-20', # Bad (non-positive integer) TILEROW value 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileCol=0&time=default&TileRow=-20', # Bad (non-positive integer) TILECOL value 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileRow=0&time=default&TileCol=-20', # Invalid TILEMATRIX value 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileCol=0&TileRow=0&time=default&TileMatrix=20', # Invalid TIME format 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileCol=0&TileRow=0&time=2012-02-290' ) for req_url in invalid_parameter_urls: if DEBUG: print 'Using URL: {0}, expecting response code of {1} and response value of {2}'.format(req_url, response_code, response_value) check_code = check_response_code(req_url, response_code, response_value) error = 'The WMTS response code does not match what\'s expected. URL: {0}, Expected Response Code: {1}'.format(req_url, response_code) self.assertTrue(check_code, error) # OperationNotSupported tests response_code = 501 response_value = 'OperationNotSupported' req_url = 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetLost&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileCol=0&TileRow=0&time=default' if DEBUG: print 'Using URL: {0}, expecting response code of {1} and response value of {2}'.format(req_url, response_code, response_value) check_code = check_response_code(req_url, response_code, response_value) error = 'The WMTS response code does not match what\'s expected. URL: {0}, Expected Response Code: {1}'.format(req_url, response_code) self.assertTrue(check_code, error) # TileOutOfRange tests response_code = 400 response_value = 'TileOutOfRange' tile_outofrange_urls = ( # TileCol out of range 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileCol=50&TileRow=0&time=default', # TileRow out of range 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileCol=0&TileRow=50&time=default' ) for req_url in tile_outofrange_urls: if DEBUG: print 'Using URL: {0}, expecting response code of {1} and response value of {2}'.format(req_url, response_code, response_value) check_code = check_response_code(req_url, response_code, response_value) error = 'The WMTS response code does not match what\'s expected. URL: {0}, Expected Response Code: {1}'.format(req_url, response_code) self.assertTrue(check_code, error) # Test if empty tile is served for out of time bounds request ref_hash = 'fb28bfeba6bbadac0b5bef96eca4ad12' empty_urls = ( # Date before range 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileCol=0&TileRow=0&time=2012-01-01', # Date after range 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileCol=0&TileRow=0&time=2012-01-01' ) for url in empty_urls: if DEBUG: print 'Using URL: {0}, expecting empty tile'.format(url) check_result = check_tile_request(url, ref_hash) self.assertTrue(check_result, 'Request for empty tile outside date range does not match what\'s expected. URL: ' + url) # Test if unknown parameter is ignored ref_hash = '3f84501587adfe3006dcbf59e67cd0a3' req_url = 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileCol=0&TileRow=0&time=2012-02-29&twoplustwo=five' if DEBUG: print 'Using URL: {0}, expecting bad parameter will be ignored' check_result = check_tile_request(req_url, ref_hash) self.assertTrue(check_result, 'Bad parameter request is not ignored. URL: ' + url)
def test_wmts_error_handling(self): """ 19. WMTS Error handling """ # MissingParameterValue test params = ('layer=test_weekly_jpg', 'TileMatrix=0', 'Service=WMTS', 'version=1.0.0', 'TileMatrixSet=EPSG4326_16km', 'format=image%2Fjpeg', 'tilecol=0', 'tilerow=0') if DEBUG: print '\nTesting WMTS Error Handling' for i in range(len(params)): param_list = list(params) param_list.pop(i) req_url = 'http://localhost/onearth/test/wmts/wmts.cgi?request=GetTile&time=default&' + '&'.join(param_list) response_code = 400 response_value = 'MissingParameterValue' if DEBUG: print 'Using URL: {0}, expecting response code of {1} and response value of {2}'.format(req_url, response_code, response_value) check_code = check_response_code(req_url, response_code, response_value) error = 'The WMTS response code does not match what\'s expected. URL: {0}, Expected Response Code: {1}'.format(req_url, response_code) self.assertTrue(check_code, error) # InvalidParameterValue tests response_code = 400 response_value = 'InvalidParameterValue' invalid_parameter_urls = ( # Bad SERVICE value 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileCol=0&TileRow=0&time=default&Service=bad_value', # Bad VERSION value 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Format=image%2Fjpeg&TileMatrix=0&TileCol=0&TileRow=0&time=default&Version=bad_value', # Bad LAYER value 'http://localhost/onearth/test/wmts/wmts.cgi?tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileCol=0&TileRow=0&time=default&layer=bad_layer_value', # Bad STYLE value 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileCol=0&TileRow=0&time=default&style=bad_value', # Bad FORMAT value 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&TileMatrix=0&TileCol=0&TileRow=0&time=default&Format=fake_image', # Bad TILEMATRIXSET value 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileCol=0&TileRow=0&time=default&tilematrixset=fake_tilematrixset', # Bad (non-positive integer) TILEMATRIX value 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileCol=0&TileRow=0&time=default&TileMatrix=-20', # Bad (non-positive integer) TILEROW value 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileCol=0&time=default&TileRow=-20', # Bad (non-positive integer) TILECOL value 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileRow=0&time=default&TileCol=-20', # Invalid TILEMATRIX value 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileCol=0&TileRow=0&time=default&TileMatrix=20', # Invalid TIME format 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileCol=0&TileRow=0&time=2012-02-290' ) for req_url in invalid_parameter_urls: if DEBUG: print 'Using URL: {0}, expecting response code of {1} and response value of {2}'.format(req_url, response_code, response_value) check_code = check_response_code(req_url, response_code, response_value) error = 'The WMTS response code does not match what\'s expected. URL: {0}, Expected Response Code: {1}'.format(req_url, response_code) self.assertTrue(check_code, error) # OperationNotSupported tests response_code = 501 response_value = 'OperationNotSupported' req_url = 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetLegendGraphic&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileCol=0&TileRow=0&time=default' if DEBUG: print 'Using URL: {0}, expecting response code of {1} and response value of {2}'.format(req_url, response_code, response_value) check_code = check_response_code(req_url, response_code, response_value) error = 'The WMTS response code does not match what\'s expected. URL: {0}, Expected Response Code: {1}'.format(req_url, response_code) self.assertTrue(check_code, error) # TileOutOfRange tests response_code = 400 response_value = 'TileOutOfRange' tile_outofrange_urls = ( # TileCol out of range 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileCol=50&TileRow=0&time=default', # TileRow out of range 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileCol=0&TileRow=50&time=default' ) for req_url in tile_outofrange_urls: if DEBUG: print 'Using URL: {0}, expecting response code of {1} and response value of {2}'.format(req_url, response_code, response_value) check_code = check_response_code(req_url, response_code, response_value) error = 'The WMTS response code does not match what\'s expected. URL: {0}, Expected Response Code: {1}'.format(req_url, response_code) self.assertTrue(check_code, error) # Test if empty tile is served for out of time bounds request ref_hash = 'fb28bfeba6bbadac0b5bef96eca4ad12' empty_urls = ( # Date before range 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileCol=0&TileRow=0&time=2012-01-01', # Date after range 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileCol=0&TileRow=0&time=2012-01-01' ) for url in empty_urls: if DEBUG: print 'Using URL: {0}, expecting empty tile'.format(url) check_result = check_tile_request(url, ref_hash) self.assertTrue(check_result, 'Request for empty tile outside date range does not match what\'s expected. URL: ' + url) # Test if unknown parameter is ignored ref_hash = '3f84501587adfe3006dcbf59e67cd0a3' req_url = 'http://localhost/onearth/test/wmts/wmts.cgi?layer=test_weekly_jpg&tilematrixset=EPSG4326_16km&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=0&TileCol=0&TileRow=0&time=2012-02-29&twoplustwo=five' if DEBUG: print 'Using URL: {0}, expecting bad parameter will be ignored' check_result = check_tile_request(req_url, ref_hash) self.assertTrue(check_result, 'Bad parameter request is not ignored. URL: ' + url)