The present invention relates generally to the field of graphical user interface (GUI) development, and more particularly to computer-automated testing of GUI mirroring.
GUIs support a variety of natural languages in order to target users from around the globe. Supporting different languages requires that a GUI display a language in its normal direction flow. For example, English and French are read from left to right (LTR), while Arabic, Hebrew, and Persian are read from right to left (RTL). User convenience dictates that the layout of a GUI for an RTL language be mirrored with respect to the corresponding LTR layout. GUI mirroring generally involves reflecting the position of GUI elements about a vertical axis passing through the center of the screen. Nested GUI elements will be similarly reflected relative to their containing elements. In addition, the direction flow of text elements may be switched, based on whether the language is LTR or RTL.
GUI elements are those elements used by GUIs to visually represent information stored in a computer. These generally facilitate the use of computer software. Examples of GUI elements are windows, for example, folder windows and message windows; and control elements, or widgets, which facilitate specific user-computer interactions, such as buttons, menus, and text boxes.
To ensure that mirroring is implemented correctly, such implementations are generally tested manually. A human tester may preview a mirrored GUI to check the correct placement of GUI elements and report if any are incorrect. Such manual efforts, which need to be redone each time a change to the GUI design occurs, tend to be time consuming and subjective—small deviations from the correct positions may be easily missed by the naked eye. Moreover, certain device characteristics may cause a GUI to appear different when mirrored on different display devices.