5 #include "maps_test_search_place.h"
6 #include "maps_test_search_route.h"
7 #include "maps_test_geocode.h"
8 #include "maps_test_util.h"
10 ////////////////////////////////////////////////////////////
12 #define DEFAULT_PROVIDER_NAME ""
13 #define DEFAULT_PROVIDER_KEY ""
15 maps_test_logging_type g_logging_type = MAPS_TEST_LOGGING_CONSOLE;
17 ////////////////////////////////////////////////////////////
19 maps_service_h maps_svc = NULL;
20 maps_view_h maps_view = NULL;
21 maps_test_state_type maps_test_state = MAPS_TEST_STATE_MAIN;
22 maps_preference_h maps_pref = NULL;
24 #define PROVIDER_NAME_LEN 512
25 #define PROVIDER_KEY_LEN 1024
27 char g_provider_name[PROVIDER_NAME_LEN+1] = DEFAULT_PROVIDER_NAME;
28 char g_provider_key[PROVIDER_KEY_LEN+1] = DEFAULT_PROVIDER_KEY;
32 static int scanf_safety(const char *format, ...)
35 if (fgets(line, sizeof(line), stdin) == NULL)
39 va_start(args, format);
40 int ret = vsscanf(line, format, args);
46 int maps_test_set_configuration()
48 printf("Input provider name. [%s] : ", g_provider_name);
49 scanf_safety("%s", &g_provider_name);
51 bool hide_key = (strlen(DEFAULT_PROVIDER_KEY) > 0 &&
52 !strncmp(g_provider_key, DEFAULT_PROVIDER_KEY, strlen(DEFAULT_PROVIDER_KEY)));
53 printf("Input provider key. [%s] : ", hide_key ? "*****" : g_provider_key);
54 scanf_safety("%s", &g_provider_key);
56 printf("Input how to print log [%s] (0:Off, 1:Console, 2:SDB, 3:All): ", get_logging_type_string(g_logging_type));
57 scanf_safety("%s", &g_buffer);
58 if (strlen(g_buffer) > 0)
59 g_logging_type = atoi(g_buffer);
61 return MAPS_ERROR_NONE;
64 int maps_test_create_maps_service()
67 return MAPS_ERROR_INVALID_OPERATION;
68 int ret = maps_service_create_without_user_consent(g_provider_name, &maps_svc);
69 if (ret == MAPS_ERROR_NONE) {
70 maps_service_set_user_consent(maps_svc, true);
71 ret = maps_service_set_provider_key(maps_svc, g_provider_key);
76 int maps_test_destroy_maps_service()
78 int ret = maps_service_destroy(maps_svc);
79 if (ret == MAPS_ERROR_NONE)
84 static bool __maps_service_provider_info_cb(char *maps_provider, void *user_data)
86 int *number = (int*)user_data;
87 printf("%d : %s\n", ++*number, maps_provider);
91 int maps_test_show_list_of_providers()
94 return maps_service_foreach_provider(__maps_service_provider_info_cb, &number);
99 printf("========================================\n");
100 printf(" Maps Native API Tester\n");
101 printf("----------------------------------------\n");
102 printf(" a\t - Show list of Providers\n");
103 printf(" b\t - Set configuration\n");
104 printf(" c\t - Create Maps service\n");
105 printf(" d\t - Destroy Maps service\n");
106 printf("----------------------------------------\n");
107 printf(" 1\t - Search Place\n");
108 printf(" 2\t - Search Place By Address\n");
109 printf(" 3\t - Search Place By Area\n");
110 printf(" 4\t - Search Place List\n");
111 printf(" 5\t - Search Place & Cancel\n");
112 printf(" 6\t - Geocode\n");
113 printf(" 7\t - Reverse Geocode\n");
114 printf(" 8\t - Multi-reverse Geocode\n");
115 printf(" 9\t - Route\n");
116 printf("----------------------------------------\n");
117 printf(" A\t - Stress Test - Search Place\n");
118 printf(" B\t - Stress Test - Geocode\n");
119 printf(" E\t - Stress Test - Route\n");
120 printf("----------------------------------------\n");
121 printf(" x\t - Exit\n");
122 printf("========================================\n");
125 int maps_test_startup()
131 int maps_test_finish()
135 ret = maps_service_destroy(maps_svc);
142 bool run_command(char cmd)
146 switch ((int)maps_test_state) {
147 case MAPS_TEST_STATE_MAIN:
149 case 'a': ret = maps_test_show_list_of_providers(); break;
150 case 'b': ret = maps_test_set_configuration(); break;
151 case 'c': ret = maps_test_create_maps_service(); break;
152 case 'd': ret = maps_test_destroy_maps_service(); break;
154 case '1': ret = maps_test_search_place(maps_svc); break;
155 case '2': ret = maps_test_search_place_by_address(maps_svc); break;
156 case '3': ret = maps_test_search_place_by_area(maps_svc); break;
157 case '4': ret = maps_test_search_place_list(maps_svc); break;
158 case '5': ret = maps_test_search_place_cancel(maps_svc); break;
159 case '6': ret = maps_test_geocode(maps_svc); break;
160 case '7': ret = maps_test_reverse_geocode(maps_svc); break;
161 case '8': ret = maps_test_multi_reverse_geocode(maps_svc); break;
162 case '9': ret = maps_test_search_route(maps_svc); break;
165 for (i = 0 ; i < 100; i++) {
166 ret = maps_test_search_place(maps_svc);
171 for (i = 0 ; i < 100; i++) {
172 ret = maps_test_geocode(maps_svc);
177 for (i = 0 ; i < 100; i++) {
178 ret = maps_test_search_route(maps_svc);
182 case 'x': return false;
183 case '\0': print_menu(); break;
184 default: printf("Unknown command\n"); break;
192 void *test_thread(void *data)
197 char input[256] = "";
198 scanf_safety("%s", &input);
199 if (run_command(input[0]) == false)
204 g_main_loop_quit(data);
205 g_main_loop_unref(data);
210 int main(int argc, char **argv)
213 #if !GLIB_CHECK_VERSION(2, 36, 0)
216 mainloop = g_main_loop_new(NULL, FALSE);
217 g_thread_new("capi-maps-service-test", &test_thread, mainloop);
218 g_main_loop_run(mainloop);