Skip to content

Commit 3a02551

Browse files
committed
Testsuite: amend "table_synced_3_autofit"
for ocornut/imgui#7218
1 parent 2030469 commit 3a02551

File tree

1 file changed

+50
-7
lines changed

1 file changed

+50
-7
lines changed

imgui_test_suite/imgui_tests_tables.cpp

+50-7
Original file line numberDiff line numberDiff line change
@@ -1700,18 +1700,29 @@ void RegisterTests_Table(ImGuiTestEngine* e)
17001700
t = IM_REGISTER_TEST(e, "table", "table_synced_3_autofit");
17011701
t->GuiFunc = [](ImGuiTestContext* ctx)
17021702
{
1703-
bool do_checks = !ctx->IsFirstGuiFrame();
1703+
auto& vars = ctx->GenericVars;
1704+
1705+
//bool do_checks = !ctx->IsFirstGuiFrame();
1706+
ImGui::SetNextWindowSize(ImVec2(500.0f, 0.0f), ImGuiCond_Appearing); // FIXME-TESTS FIXME-TABLE: Auto or too small width has effect on indented table instance
17041707
ImGui::Begin("Test Window", NULL, ImGuiWindowFlags_NoSavedSettings);
1708+
1709+
ImGui::Checkbox("Do checks", &vars.Bool1);
1710+
ImGui::SliderInt("Step", &vars.Step, 0, 1);
1711+
1712+
const bool do_checks = vars.Bool1;
1713+
const float width_0 = ImGui::CalcTextSize("Very very long text 1").x;
1714+
const float width_1 = (vars.Step == 0) ? ImGui::CalcTextSize("Text 1").x : width_0;
1715+
17051716
if (ImGui::BeginTable("test_table", 2, ImGuiTableFlags_Borders | ImGuiTableFlags_SizingFixedFit))
17061717
{
17071718
ImGui::TableNextColumn();
1708-
if (do_checks)
1709-
IM_CHECK_EQ_NO_RET(ImGui::GetContentRegionAvail().x, ImGui::CalcTextSize("Very very long text 1").x);
17101719
ImGui::Text("Very very long text 1");
1711-
ImGui::TableNextColumn();
17121720
if (do_checks)
1713-
IM_CHECK_EQ_NO_RET(ImGui::GetContentRegionAvail().x, ImGui::CalcTextSize("Text 1").x);
1721+
IM_CHECK_EQ_NO_RET(ImGui::GetContentRegionAvail().x, width_0);
1722+
ImGui::TableNextColumn();
17141723
ImGui::Text("Text 1");
1724+
if (do_checks)
1725+
IM_CHECK_EQ_NO_RET(ImGui::GetContentRegionAvail().x, width_1);
17151726
ImGui::EndTable();
17161727
}
17171728
for (int n = 0; n < 2; n++)
@@ -1724,17 +1735,49 @@ void RegisterTests_Table(ImGuiTestEngine* e)
17241735
{
17251736
ImGui::TableNextColumn();
17261737
if (do_checks)
1727-
IM_CHECK_EQ_NO_RET(ImGui::GetContentRegionAvail().x, ImGui::CalcTextSize("Very very long text 1").x);
1738+
IM_CHECK_EQ_NO_RET(ImGui::GetContentRegionAvail().x, width_0);
17281739
ImGui::Text("Text 1");
17291740
ImGui::TableNextColumn();
17301741
if (do_checks)
1731-
IM_CHECK_EQ_NO_RET(ImGui::GetContentRegionAvail().x, ImGui::CalcTextSize("Text 2").x);
1742+
IM_CHECK_EQ_NO_RET(ImGui::GetContentRegionAvail().x, width_1);
17321743
ImGui::Text("Text 2");
17331744
ImGui::EndTable();
17341745
}
17351746
}
1747+
ImGui::Unindent();
1748+
if (vars.Step == 1)
1749+
{
1750+
if (ImGui::BeginTable("test_table", 2, ImGuiTableFlags_Borders | ImGuiTableFlags_SizingFixedFit))
1751+
{
1752+
ImGui::TableNextColumn();
1753+
if (do_checks)
1754+
IM_CHECK_EQ_NO_RET(ImGui::GetContentRegionAvail().x, width_0);
1755+
ImGui::Text("Text 1");
1756+
ImGui::TableNextColumn();
1757+
ImGui::Text("Very very long text 1");
1758+
if (do_checks)
1759+
IM_CHECK_EQ_NO_RET(ImGui::GetContentRegionAvail().x, width_1);
1760+
ImGui::EndTable();
1761+
}
1762+
}
17361763
ImGui::End();
17371764
};
1765+
t->TestFunc = [](ImGuiTestContext* ctx)
1766+
{
1767+
auto& vars = ctx->GenericVars;
1768+
for (int step = 0; step < 2; step++)
1769+
{
1770+
#if IMGUI_VERSION_NUM < 19115
1771+
if (step == 1)
1772+
continue;
1773+
#endif
1774+
vars.Step = step;
1775+
vars.Bool1 = false;
1776+
ctx->Yield(2);
1777+
vars.Bool1 = true;
1778+
ctx->Yield(2);
1779+
}
1780+
};
17381781
#endif
17391782

17401783
// ## Test two tables in a tooltip continuously expanding tooltip size (#3162)

0 commit comments

Comments
 (0)