tdf#98493, tdf#133079: sc: Add UItest

Change-Id: I04794bb7313f6ecd32088f8e7aa57e898f8ba427
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94493
Tested-by: Xisco Faulí <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
diff --git a/sc/qa/uitest/calc_tests/data/tdf98493.ods b/sc/qa/uitest/calc_tests/data/tdf98493.ods
new file mode 100644
index 0000000..1cc0d8b
--- /dev/null
+++ b/sc/qa/uitest/calc_tests/data/tdf98493.ods
Binary files differ
diff --git a/sc/qa/uitest/calc_tests8/navigator.py b/sc/qa/uitest/calc_tests8/navigator.py
index 6e6cc31b..4026ca6 100644
--- a/sc/qa/uitest/calc_tests8/navigator.py
+++ b/sc/qa/uitest/calc_tests8/navigator.py
@@ -81,3 +81,37 @@ class navigator(UITestCase):

        self.xUITest.executeCommand(".uno:Sidebar")
        self.ui_test.close_doc()

    def test_tdf98493(self):

        self.ui_test.load_file(get_url_for_data_file("tdf98493.ods"))
        xCalcDoc = self.xUITest.getTopFocusWindow()
        xGridWin = xCalcDoc.getChild("grid_window")

        self.assertEqual(get_state_as_dict(xGridWin)["SelectedTable"], "2")

        self.xUITest.executeCommand(".uno:Sidebar")
        xGridWin.executeAction("SIDEBAR", mkPropertyValues({"PANEL": "ScNavigatorPanel"}))

        xCalcDoc = self.xUITest.getTopFocusWindow()
        xNavigatorPanel = xCalcDoc.getChild("NavigatorPanelParent")
        xNavigatorPanel.executeAction("ROOT", tuple())
        xContentBox = xNavigatorPanel.getChild('contentbox')

        # tdf#133079, without the fix in place, it would be 8
        self.assertEqual(len(xContentBox.getChildren()), 1)

        xSheets = xContentBox.getChild('0')
        self.assertEqual(len(xSheets.getChildren()), 12)

        #key=item position, value=sheet ( there are hidden sheets )
        results = { '1': '0', '5': '4', '6': '4', '11': '10'}

        for k, v in results.items():
            xChild = xSheets.getChild(k)
            xChild.executeAction("DOUBLECLICK", tuple())

            self.assertEqual(get_state_as_dict(xGridWin)["SelectedTable"], v)

        self.xUITest.executeCommand(".uno:Sidebar")
        self.ui_test.close_doc()
diff --git a/vcl/source/treelist/uiobject.cxx b/vcl/source/treelist/uiobject.cxx
index e5f166e8..2478ab8 100644
--- a/vcl/source/treelist/uiobject.cxx
+++ b/vcl/source/treelist/uiobject.cxx
@@ -135,6 +135,11 @@ void TreeListEntryUIObject::execute(const OUString& rAction, const StringMap& /*
            return;
        pItem->ClickHdl(mpEntry);
    }
    else if (rAction == "DOUBLECLICK")
    {
        mxTreeList->Select(mpEntry);
        mxTreeList->DoubleClickHdl();
    }
}

std::unique_ptr<UIObject> TreeListEntryUIObject::get_child(const OUString& rID)