示例#1
0
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();
}
示例#2
0
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);
}
示例#3
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);
    }
}
示例#4
0
void PluginHandler_destroy() {
    PluginHandler_unloadAllPlugins();
}