UI test logger has wrong expectations on vertical tabs

Ilmari Lauhakangas ilmari.lauhakangas at libreoffice.org
Thu Feb 17 18:33:32 UTC 2022


On 17.2.2022 17.54, Caolán McNamara wrote:
> On Thu, 2022-02-17 at 17:32 +0200, Ilmari Lauhakangas wrote:
>> vcl/source/control/ivctrl.cxx has collectUIInformation with the
>> parent as the last parameter. It is run in
>> VerticalTabControl::SetCurPageId
>>
>> I set a breakpoint there and indeed 'p GetPageParent()->get_id()'
>> returns an empty string.
>>
>> GetPageParent() is in vcl/inc/verticaltabctrl.hxx and gets a VclVBox
>> object.
>>
>> VclVBox is found in include/vcl/layout.hxx
> 
> So GetPageParent() is just m_xBox.get() and that m_xBox is the one
> created in the ctor of VerticalTabControl. If it should have an id then
> some m_xBox->set_id("whatever") would make that string non-blank.
> 
> I don't really know if that "Parent" is particularly useful for any
> purpose? I don't think I see anything equivalent for the "normal"
> horizontal TabControl, maybe it makes more sense to drop the "Parent"
> argument instead of giving it an id.

Thanks, I created a patch: https://gerrit.libreoffice.org/c/core/+/130111

However, the logger thing needs more polish in general. The produced 
Python test

- might reference a variable before defining it
- seems to always contain at least some indentation errors

Also, as mentioned in the commit message of my patch:

self.xUITest.getTopFocusWindow() in a hyperlink dialog opening test does 
not contain the child "tabcontrol" and thus the test errors out.

Relevant code paths:
WindowUIObject::get_child in vcl/source/uitest/uiobject.cxx
UITest::getFocusTopWindow in vcl/source/uitest/uitest.cxx

UITestUnoObj::getTopFocusWindow in vcl/source/uitest/uno/uitest_uno.cxx 
calls UITest::getFocusTopWindow

To that, I say hocus pocus focus!!

Ilmari


More information about the LibreOffice mailing list