handler* h = (handler*) handle;
+ if (h->read_info->cancel > 0) {
+ debug_printf(DEBUG, "scan completed canceled");
+ reset_handler(h);
+ kds_s2000w_handler_recreate_session(h);
+ return;
+ }
+
kds_s2000w_net_handler_get_current_scan_status(h);
if (h->current_scan_status->complete_scanned > 0) {
return;
}
- if (h->read_info->cancel > 0
- || h->current_scan_status->available_images <= 0) {
- debug_printf(DEBUG, "scan completed - cancel or no availible images");
+ if (h->current_scan_status->available_images <= 0) {
+ debug_printf(DEBUG, "scan completed no availible images");
reset_handler(h);
kds_s2000w_handler_recreate_session(h);
return;
h = NULL;
}
+void sane_kds_s2000w_net_cancel_canceled()
+{
+ response* resp_status = kds_s2000w_client_response_init();
+ resp_status->data = realloc(resp_status->data, 27);
+ const char* status = "{\"SessionId\":\"1251877821\"}";
+ memcpy(resp_status->data, status, 27);
+ resp_status->code = 200;
+ resp_status->size = 27;
+ will_return(mock_response, resp_status);
+ will_return(__wrap_kds_s2000w_client_open_session, 0);
+ response* set_option = kds_s2000w_client_response_init();
+ set_option->code = 200;
+ set_option->size = 0;
+ will_return(mock_response, set_option);
+ will_return(__wrap_kds_s2000w_client_set_option, 0);
+ expect_function_call(__wrap_kds_s2000w_client_close_session);
+ expect_function_call(__wrap_kds_s2000w_client_open_session);
+ expect_function_call(__wrap_kds_s2000w_client_set_option);
+ handler* h = init_handler();
+ h->read_info->cancel = 1;
+
+ _sane_kds_s2000w_net_cancel(h);
+
+ assert_int_equal(h->read_info->cancel, 0);
+
+ kds_s2000w_client_response_free(resp_status);
+ resp_status = NULL;
+ kds_s2000w_client_response_free(set_option);
+ set_option = NULL;
+ free_handler(h);
+ h = NULL;
+}
+
void sane_kds_s2000w_net_cancel_completed_scan_feeder()
{
response* resp_status = kds_s2000w_client_response_init();
will_return(mock_response, resp_status);
will_return(__wrap_kds_s2000w_client_status_session, 0);
response* resp_session = kds_s2000w_client_response_init();
- resp_session->data = realloc(resp_session->data, 28);
- const char* responsedata = "{\"SessionId\":\"1251877821\"}\0";
- memcpy(resp_session->data, responsedata, 28);
+ resp_session->data = realloc(resp_session->data, 27);
+ const char* responsedata = "{\"SessionId\":\"1251877821\"}";
+ memcpy(resp_session->data, responsedata, 27);
resp_session->code = 200;
- resp_session->size = 28;
+ resp_session->size = 27;
will_return(mock_response, resp_session);
will_return(__wrap_kds_s2000w_client_open_session, 0);
response* resp_options = kds_s2000w_client_response_init();
cmocka_unit_test(kds_s2000w_net_set_io_mode),
cmocka_unit_test(kds_s2000w_net_get_select_fd),
cmocka_unit_test(sane_kds_s2000w_net_start_cancel),
+ cmocka_unit_test(sane_kds_s2000w_net_cancel_canceled),
cmocka_unit_test(sane_kds_s2000w_net_cancel),
cmocka_unit_test(sane_kds_s2000w_net_cancel_completed_scan_feeder),
cmocka_unit_test(sane_kds_s2000w_net_cancel_completed_scan_flatbed),