Project

General

Profile

Actions

action #65100

closed

coordination #36712: [saga] Use YaST specific framework for GUI testing

coordination #50672: [funtional][y][epic] Use libyui-rest-api for YaST modules testing

[functional][y] Changing a value in an element does not trigger events to reload other elements of the window.

Added by oorlov about 4 years ago. Updated over 3 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Target version:
Start date:
2019-04-25
Due date:
2020-05-05
% Done:

0%

Estimated time:
13.00 h

Description

Steps to reproduce:

  1. Run 'timezone' yast2 module when libyui-rest-api is installed in the system (e.g. for ncurses: sudo YUI_HTTP_PORT=9999 /sbin/yast2 timezone, Qt: xdg-su -c "env YUI_HTTP_PORT=9999 /sbin/yast2 timezone");
  2. Select another region (e.g. select 'Russia' with curl -X POST 'http://localhost:9999/v1/widgets?id=region&action=select&value=Russia');
  3. Focus on 'Time Zone' selector.

Expected result:
Time Zone list is changed in accordance with the selected region.
Actual result:
Time Zone is remained unchanged.

NOTE1:
The same issue is reproduced for:

  • YComboBox in Qt;
  • YInputField (e.g. run xdg-su -c "env YUI_HTTP_PORT=9999 /sbin/yast2 alternatives" and execute curl -X POST 'http://localhost:9999/v1/widgets?id=search&action=enter_text&value=clang' => The text will be set, but table is not updated.
  • YSelectionBox in ncurses.

NOTE2:
Please consider other elements which also require the event to be sent after updating.

Assumption:

The issue might happen because YComboBox, YSelectionBox, YInputField do not implement activate() method (we just need to send relevant event), so that the method is not called in YHttpWidgetsActionHandler in libyui-rest-api:

    /**
    * Activate the item selected in the tree. Can be used in tests to simulate user input.
    *
    * Derived classes are required to implement this.
    **/
    virtual void activate() = 0;
Actions

Also available in: Atom PDF