Revision 92fc67cf
Added by koszko over 1 year ago
| test/unit/test_indexeddb.py | ||
|---|---|---|
| 77 | 77 |  | 
| 78 | 78 | database_contents = get_db_contents(execute_in_page) | 
| 79 | 79 |  | 
| 80 |     assert len(database_contents['files']) == 4
 | |
| 80 | assert len(database_contents['file']) == 4 | |
| 81 | 81 | assert all([sample_files_by_sha256[file['sha256']] == file['contents'] | 
| 82 |                 for file in database_contents['files']])
 | |
| 83 |     assert all([len(file) == 2 for file in database_contents['files']])
 | |
| 82 | for file in database_contents['file']]) | |
| 83 | assert all([len(file) == 2 for file in database_contents['file']]) | |
| 84 | 84 |  | 
| 85 | 85 | assert len(database_contents['file_uses']) == 4 | 
| 86 | 86 | assert all([uses['uses'] == 1 for uses in database_contents['file_uses']]) | 
| 87 | 87 | assert set([uses['sha256'] for uses in database_contents['file_uses']]) \ | 
| 88 |         == set([file['sha256'] for file in database_contents['files']])
 | |
| 88 | == set([file['sha256'] for file in database_contents['file']]) | |
| 89 | 89 |  | 
| 90 | 90 | assert database_contents['mapping'] == [] | 
| 91 | 91 | assert database_contents['resource'] == [sample_item] | 
| ... | ... | |
| 147 | 147 | for file, nr in zip(sample_files_list, uses_list)]) | 
| 148 | 148 |  | 
| 149 | 149 | files = dict([(file['sha256'], file['contents']) | 
| 150 |                   for file in database_contents['files']])
 | |
| 150 | for file in database_contents['file']]) | |
| 151 | 151 | assert files == dict([(file['sha256'], file['contents']) | 
| 152 | 152 | for file in sample_files_list]) | 
| 153 | 153 |  | 
| ... | ... | |
| 179 | 179 | assert uses == dict([(file['sha256'], 1) for file in sample_files_list]) | 
| 180 | 180 |  | 
| 181 | 181 | files = dict([(file['sha256'], file['contents']) | 
| 182 |                   for file in results[0]['files']])
 | |
| 182 | for file in results[0]['file']]) | |
| 183 | 183 | assert files == dict([(file['sha256'], file['contents']) | 
| 184 | 184 | for file in sample_files_list]) | 
| 185 | 185 |  | 
| ... | ... | |
| 192 | 192 | sample_resource = make_sample_resource() | 
| 193 | 193 | sample_mapping = make_sample_mapping() | 
| 194 | 194 |     initial_data = {
 | 
| 195 |         'resources': {
 | |
| 195 |         'resource': {
 | |
| 196 | 196 |             'helloapple': {
 | 
| 197 | 197 | '1.12': sample_resource, | 
| 198 | 198 | '0.9': 'something_that_should_get_ignored', | 
| ... | ... | |
| 201 | 201 | '1.11.1': 'something_that_should_get_ignored', | 
| 202 | 202 | } | 
| 203 | 203 | }, | 
| 204 |         'mappings': {
 | |
| 204 |         'mapping': {
 | |
| 205 | 205 |             'helloapple': {
 | 
| 206 | 206 | '0.1.1': sample_mapping | 
| 207 | 207 | } | 
| ... | ... | |
| 222 | 222 | def test_haketilodb_settings(driver, execute_in_page): | 
| 223 | 223 | """ | 
| 224 | 224 | indexeddb.js facilitates operating on Haketilo's internal database. | 
| 225 |     Verify assigning/retrieving values of simple "settings" item works properly.
 | |
| 225 | Verify assigning/retrieving values of simple "setting" item works properly. | |
| 226 | 226 | """ | 
| 227 | 227 |     execute_in_page(load_script('common/indexeddb.js'))
 | 
| 228 | 228 | mock_broadcast(execute_in_page) | 
| ... | ... | |
| 230 | 230 | # Start with no database. | 
| 231 | 231 | clear_indexeddb(execute_in_page) | 
| 232 | 232 |  | 
| 233 |     assert get_db_contents(execute_in_page)['settings'] == []
 | |
| 233 | assert get_db_contents(execute_in_page)['setting'] == [] | |
| 234 | 234 |  | 
| 235 | 235 |     assert execute_in_page('returnval(get_setting("option15"));') == None
 | 
| 236 | 236 |  | 
| ... | ... | |
| 280 | 280 | # Start with no database. | 
| 281 | 281 | clear_indexeddb(execute_in_page) | 
| 282 | 282 |  | 
| 283 |     assert get_db_contents(execute_in_page)['repos'] == []
 | |
| 283 | assert get_db_contents(execute_in_page)['repo'] == [] | |
| 284 | 284 |  | 
| 285 | 285 | sample_urls = ['https://hdrlla.example.com/', 'https://hdrlla.example.org'] | 
| 286 | 286 |  | 
| ... | ... | |
| 342 | 342 | sample_resource = make_sample_resource() | 
| 343 | 343 | sample_mapping = make_sample_mapping() | 
| 344 | 344 |     initial_data = {
 | 
| 345 |         'resources': {
 | |
| 345 |         'resource': {
 | |
| 346 | 346 |             'helloapple': {
 | 
| 347 | 347 | '1.0': sample_resource | 
| 348 | 348 | } | 
| 349 | 349 | }, | 
| 350 |         'mappings': {
 | |
| 350 |         'mapping': {
 | |
| 351 | 351 |             'helloapple': {
 | 
| 352 | 352 | '0.1.1': sample_mapping | 
| 353 | 353 | } | 
| ... | ... | |
| 404 | 404 | for elem_id, json_value in [ | 
| 405 | 405 |             ('resource_helloapple', sample_resource),
 | 
| 406 | 406 |             ('mapping_helloapple', sample_mapping),
 | 
| 407 |             ('settings_option15', {'name': 'option15', 'value': '123'}),
 | |
| 408 |             ('repos_https://hydril.la', {'url': 'https://hydril.la'}),
 | |
| 407 |             ('setting_option15', {'name': 'option15', 'value': '123'}),
 | |
| 408 |             ('repo_https://hydril.la', {'url': 'https://hydril.la'}),
 | |
| 409 | 409 |             ('blocking_file:///*', {'pattern': 'file:///*', 'allow': False})
 | 
| 410 | 410 | ]: | 
| 411 | 411 | assert json.loads(driver.find_element_by_id(elem_id).text) == json_value | 
| ... | ... | |
| 417 | 417 | sample_mapping2 = make_sample_mapping() | 
| 418 | 418 | sample_mapping2['identifier'] = 'helloapple-copy' | 
| 419 | 419 |     sample_data = {
 | 
| 420 |         'resources': {
 | |
| 420 |         'resource': {
 | |
| 421 | 421 |             'helloapple-copy': {
 | 
| 422 | 422 | '1.0': sample_resource2 | 
| 423 | 423 | } | 
| 424 | 424 | }, | 
| 425 |         'mappings': {
 | |
| 425 |         'mapping': {
 | |
| 426 | 426 |             'helloapple-copy': {
 | 
| 427 | 427 | '0.1.1': sample_mapping2 | 
| 428 | 428 | } | 
| ... | ... | |
| 441 | 441 | for elem_id, json_value in [ | 
| 442 | 442 |             ('resource_helloapple-copy', sample_resource2),
 | 
| 443 | 443 |             ('mapping_helloapple-copy', sample_mapping2),
 | 
| 444 |             ('settings_option22', {'name': 'option22', 'value': 'abc'}),
 | |
| 445 |             ('repos_https://hydril2.la', {'url': 'https://hydril2.la'}),
 | |
| 444 |             ('setting_option22', {'name': 'option22', 'value': 'abc'}),
 | |
| 445 |             ('repo_https://hydril2.la', {'url': 'https://hydril2.la'}),
 | |
| 446 | 446 |             ('blocking_ftp://a.bc/', {'pattern': 'ftp://a.bc/', 'allow': True})
 | 
| 447 | 447 | ]: | 
| 448 | 448 | assert json.loads(driver.find_element_by_id(elem_id).text) == json_value | 
| ... | ... | |
| 468 | 468 | }''') | 
| 469 | 469 |  | 
| 470 | 470 | removed_ids = ['mapping_helloapple-copy', 'resource_helloapple', | 
| 471 |                    'repos_https://hydril.la', 'blocking_file:///*']
 | |
| 471 | 'repo_https://hydril.la', 'blocking_file:///*'] | |
| 472 | 472 | def condition_items_absent_and_changed(driver): | 
| 473 | 473 | for id in removed_ids: | 
| 474 | 474 | try: | 
| ... | ... | |
| 477 | 477 | except WebDriverException: | 
| 478 | 478 | pass | 
| 479 | 479 |  | 
| 480 |         option_text = driver.find_element_by_id('settings_option22').text
 | |
| 480 |         option_text = driver.find_element_by_id('setting_option22').text
 | |
| 481 | 481 |         blocking_text = driver.find_element_by_id('blocking_ftp://a.bc/').text
 | 
| 482 | 482 | return (json.loads(option_text)['value'] == None and | 
| 483 | 483 | json.loads(blocking_text)['allow'] == False) | 
Also available in: Unified diff
change store names and data keys to singular