void plugin_handler_find_plugin(void**) { assert_null(PluginHandler_findPlugin(0, "dummyFile", "dummyName", false)); assert_null(PluginHandler_findPlugin(0, "dummyFile", "dummyName", true)); assert_null(PluginHandler_findPlugin(0, "sourcecode_plugin", "Source Code View", false)); assert_non_null(PluginHandler_findPlugin(0, "sourcecode_plugin", "Source Code View", true)); assert_non_null(PluginHandler_findPlugin(0, "sourcecode_plugin", "Source Code View", false)); assert_true(PluginHandler_addPlugin(OBJECT_DIR, "registers_plugin")); assert_non_null(PluginHandler_findPlugin(0, "registers_plugin", "Registers View", true)); assert_non_null(PluginHandler_findPluginByFilename("registers_plugin")); assert_null(PluginHandler_findPluginByFilename("plugin_that_isnt_here")); PluginHandler_unloadAllPlugins(); }
void plugin_handler_add_plugin_true(void**) { int count = 0; assert_true(PluginHandler_addPlugin(OBJECT_DIR, "sourcecode_plugin")); assert_true(PluginHandler_addPlugin(OBJECT_DIR, "registers_plugin")); PluginData** plugins = PluginHandler_getViewPlugins(&count); assert_int_equal(count, 2); assert_true(PluginHandler_getPluginData(plugins[0]->plugin) == plugins[0]); assert_true(PluginHandler_getPluginData(plugins[1]->plugin) == plugins[1]); PluginHandler_unloadAllPlugins(); plugins = PluginHandler_getViewPlugins(&count); assert_int_equal(count, 0); }
static void ui_session_layout(void** state) { UILayout layout; UILayout layout2; (void)state; PluginHandler_addStaticPlugin(&s_pluginData); imguiSetup(1024, 768); ImGuiIO& io = ImGui::GetIO(); Session* session = Session_create(); Session* session2 = Session_create(); PluginData* registersPlugin = PluginHandler_findPlugin(0, "registers_plugin", "Registers View", true); PluginData* sourcecodePlugin = PluginHandler_findPlugin(0, "sourcecode_plugin", "Source Code View", true); ViewPluginInstance* i0 = PluginInstance_createViewPlugin(registersPlugin); ViewPluginInstance* i1 = PluginInstance_createViewPlugin(sourcecodePlugin); Session_addViewPlugin(session, i0); Session_addViewPlugin(session, i1); PluginUI_setWindowRect(i0, &s_t0); PluginUI_setWindowRect(i1, &s_t1); Session_getLayout(session, &layout, io.DisplaySize.x, io.DisplaySize.y); UILayout_saveLayout(&layout, "t2-output/temp_layout2.json"); // Tear down Session_removeViewPlugin(session, i0); Session_removeViewPlugin(session, i1); PluginHandler_unloadAllPlugins(); // Load the layout UILayout_loadLayout(&layout2, "t2-output/temp_layout2.json"); compareLayouts(&layout, &layout2); int count = 0; Session_setLayout(session2, &layout2, io.DisplaySize.x, io.DisplaySize.y); ViewPluginInstance** plugins = Session_getViewPlugins(session2, &count); assert_int_equal(layout.layoutItemCount, count); for (int i = 0; i < layout.layoutItemCount; ++i) { FloatRect rect; PluginUI_getWindowRect(plugins[i], &rect); const LayoutItem* item = &layout2.layoutItems[i]; assert_int_equal((int)(item->rect.x * io.DisplaySize.x), (int)rect.x); assert_int_equal((int)(item->rect.y * io.DisplaySize.y), (int)rect.y); assert_int_equal((int)(item->rect.width * io.DisplaySize.x), (int)rect.width); assert_int_equal((int)(item->rect.height * io.DisplaySize.y), (int)rect.height); } }
void PluginHandler_destroy() { PluginHandler_unloadAllPlugins(); }