# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
#
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
from uitest.framework
import UITestCase
from uitest.uihelper.common
import get_state_as_dict
from uitest.uihelper.common
import select_pos
from uitest.uihelper.common
import select_by_text
from uitest.uihelper.common
import change_measurement_unit
from libreoffice.uno.propertyvalue
import mkPropertyValues
class formatCell(UITestCase):
def test_format_cell_numbers_tab(self):
#numberingformatpage.ui
with self.ui_test.create_doc_in_start_center(
"calc" ):
xCalcDoc = self.xUITest.getTopFocusWindow()
gridwin = xCalcDoc.getChild(
"grid_window" )
#select cell A1
gridwin.executeAction(
"SELECT" , mkPropertyValues({
"CELL" :
"A1" }))
#format - cell
with self.ui_test.execute_dialog_through_command(
".uno:FormatCellDialog" )
as xDialo
g:
xTabs = xDialog.getChild("tabcontrol" )
select_pos(xTabs, "0" ) #tab Numbers
xdecimalsed = xDialog.getChild("decimalsed" )
xleadzerosed = xDialog.getChild("leadzerosed" )
xnegnumred = xDialog.getChild("negnumred" )
xthousands = xDialog.getChild("thousands" )
xlanguagelb = xDialog.getChild("languagelb" )
xformatted = xDialog.getChild("formatted" )
#language
select_by_text(xlanguagelb, "English (USA)" )
#other properties
xdecimalsed.executeAction("UP" , tuple())
xleadzerosed.executeAction("UP" , tuple())
xnegnumred.executeAction("CLICK" , tuple())
xthousands.executeAction("CLICK" , tuple())
#format #,#00.0;[RED]-#,#00.0
self.assertEqual(get_state_as_dict(xformatted)["Text" ], "#,#00.0;[RED]-#,#00.0")
#save
#verify
gridwin.executeAction("SELECT" , mkPropertyValues({"CELL" : "A1" }))
#format - cell
with self.ui_test.execute_dialog_through_command(".uno:FormatCellDialog" ) as xDialog:
xTabs = xDialog.getChild("tabcontrol" )
select_pos(xTabs, "0" ) #tab Numbers
xliststore1 = xDialog.getChild("categorylb" ) #1st list / Category
xdecimalsed = xDialog.getChild("decimalsed" )
xleadzerosed = xDialog.getChild("leadzerosed" )
xnegnumred = xDialog.getChild("negnumred" )
xthousands = xDialog.getChild("thousands" )
xlanguagelb = xDialog.getChild("languagelb" )
xformatted = xDialog.getChild("formatted" )
self.assertEqual(get_state_as_dict(xliststore1)["SelectEntryText" ], "Number" )
self.assertEqual(get_state_as_dict(xlanguagelb)["SelectEntryText" ], "English (USA)" )
self.assertEqual(get_state_as_dict(xdecimalsed)["Text" ], "1" )
self.assertEqual(get_state_as_dict(xleadzerosed)["Text" ], "2" )
self.assertEqual(get_state_as_dict(xnegnumred)["Selected" ], "true" )
self.assertEqual(get_state_as_dict(xthousands)["Selected" ], "true" )
self.assertEqual(get_state_as_dict(xformatted)["Text" ], "#,#00.0;[RED]-#,#00.0")
def test_format_cell_font_tab(self):
#numberingformatpage.ui
with self.ui_test.create_doc_in_start_center("calc" ):
xCalcDoc = self.xUITest.getTopFocusWindow()
gridwin = xCalcDoc.getChild("grid_window" )
#select cell A1
gridwin.executeAction("SELECT" , mkPropertyValues({"CELL" : "A1" }))
#format - cell
with self.ui_test.execute_dialog_through_command(".uno:FormatCellDialog" ) as xDialog:
xTabs = xDialog.getChild("tabcontrol" )
select_pos(xTabs, "1" ) #tab Font
# xNoteBook = xDialog.getChild("nbWestern") //western notebook is always active
xSizeFont = xDialog.getChild("cbWestSize" )
xSizeFont.executeAction("TYPE" , mkPropertyValues({"KEYCODE" :"CTRL+A" }))
xSizeFont.executeAction("TYPE" , mkPropertyValues({"TEXT" :"18" })) #set font size 18
xLangFont = xDialog.getChild("cbWestLanguage" )
select_pos(xLangFont, "0" )
xNoteBook = xDialog.getChild("nbCJKCTL" )
select_pos(xNoteBook, "0" )
xSizeFontEast = xDialog.getChild("cbCJKSize" )
xSizeFontEast.executeAction("TYPE" , mkPropertyValues({"KEYCODE" :"CTRL+A" }))
xSizeFontEast.executeAction("TYPE" , mkPropertyValues({"TEXT" :"18" })) #set font size 18
xLangFontEast = xDialog.getChild("cbCJKLanguage" )
select_pos(xLangFontEast, "0" )
select_pos(xNoteBook, "1" )
xSizeFontCTL = xDialog.getChild("cbCTLSize" )
xSizeFontCTL.executeAction("TYPE" , mkPropertyValues({"KEYCODE" :"CTRL+A" }))
xSizeFontCTL.executeAction("TYPE" , mkPropertyValues({"TEXT" :"18" })) #set font size 18
xLangFontCTL = xDialog.getChild("cbCTLLanguage" )
select_pos(xLangFontCTL, "0" )
#Verify - select cell A1
gridwin.executeAction("SELECT" , mkPropertyValues({"CELL" : "A1" }))
#format - cell
with self.ui_test.execute_dialog_through_command(".uno:FormatCellDialog" , close_button="cancel" ) as xDialog:
xTabs = xDialog.getChild("tabcontrol" )
select_pos(xTabs, "1" ) #tab Font
xSizeFont = xDialog.getChild("cbWestSize" )
self.assertEqual(get_state_as_dict(xSizeFont)["Text" ], "18 pt" )
xLangFont = xDialog.getChild("cbWestLanguage" )
self.assertEqual(get_state_as_dict(xLangFont)["Text" ], "[None]" )
xNoteBook = xDialog.getChild("nbCJKCTL" )
select_pos(xNoteBook, "0" )
xSizeFontEast = xDialog.getChild("cbCJKSize" )
self.assertEqual(get_state_as_dict(xSizeFontEast)["Text" ], "18 pt" )
xLangFontEast = xDialog.getChild("cbCJKLanguage" )
self.assertEqual(get_state_as_dict(xLangFontEast)["Text" ], "[None]" )
select_pos(xNoteBook, "1" )
xSizeFontCTL = xDialog.getChild("cbCTLSize" )
self.assertEqual(get_state_as_dict(xSizeFontCTL)["Text" ], "18 pt" ) #check font size
xLangFontCTL = xDialog.getChild("cbCTLLanguage" )
self.assertEqual(get_state_as_dict(xLangFontCTL)["Text" ], "[None]" )
def test_format_cell_font_effects_tab(self):
#numberingformatpage.ui
with self.ui_test.create_doc_in_start_center("calc" ):
xCalcDoc = self.xUITest.getTopFocusWindow()
gridwin = xCalcDoc.getChild("grid_window" )
#select cell A1
gridwin.executeAction("SELECT" , mkPropertyValues({"CELL" : "A1" }))
#format - cell
with self.ui_test.execute_dialog_through_command(".uno:FormatCellDialog" ) as xDialog:
xTabs = xDialog.getChild("tabcontrol" )
select_pos(xTabs, "2" ) #tab Font Effects
xRelief = xDialog.getChild("relieflb" )
xOverline = xDialog.getChild("overlinelb" )
xStrikeout = xDialog.getChild("strikeoutlb" )
xUnderline = xDialog.getChild("underlinelb" )
xEmphasis = xDialog.getChild("emphasislb" )
xPosition = xDialog.getChild("positionlb" )
select_pos(xRelief, "1" )
select_pos(xOverline, "1" )
select_pos(xStrikeout, "1" )
select_pos(xUnderline, "1" )
select_pos(xEmphasis, "1" )
select_pos(xPosition, "1" )
#Verify- select cell A1
gridwin.executeAction("SELECT" , mkPropertyValues({"CELL" : "A1" }))
#format - cell
with self.ui_test.execute_dialog_through_command(".uno:FormatCellDialog" , close_button="cancel" ) as xDialog:
xTabs = xDialog.getChild("tabcontrol" )
select_pos(xTabs, "2" )
xRelief = xDialog.getChild("relieflb" )
xOverline = xDialog.getChild("overlinelb" )
xStrikeout = xDialog.getChild("strikeoutlb" )
xUnderline = xDialog.getChild("underlinelb" )
xEmphasis = xDialog.getChild("emphasislb" )
xPosition = xDialog.getChild("positionlb" )
self.assertEqual(get_state_as_dict(xRelief)["SelectEntryText" ], "Embossed" )
self.assertEqual(get_state_as_dict(xOverline)["SelectEntryText" ], "Single" )
self.assertEqual(get_state_as_dict(xStrikeout)["SelectEntryText" ], "Single" )
self.assertEqual(get_state_as_dict(xUnderline)["SelectEntryText" ], "Single" )
self.assertEqual(get_state_as_dict(xEmphasis)["SelectEntryText" ], "Dot" )
self.assertEqual(get_state_as_dict(xPosition)["SelectEntryText" ], "Below text" )
def test_format_cell_alignment_tab(self):
with self.ui_test.create_doc_in_start_center("calc" ):
xCalcDoc = self.xUITest.getTopFocusWindow()
gridwin = xCalcDoc.getChild("grid_window" )
#select cell A1
gridwin.executeAction("SELECT" , mkPropertyValues({"CELL" : "A1" }))
#format - cell
with self.ui_test.execute_dialog_through_command(".uno:FormatCellDialog" ) as xDialog:
xTabs = xDialog.getChild("tabcontrol" )
select_pos(xTabs, "3" ) #tab Alignment
comboboxHorzAlign = xDialog.getChild("comboboxHorzAlign" )
xspinIndentFrom = xDialog.getChild("spinIndentFrom" )
xcomboboxVertAlign = xDialog.getChild("comboboxVertAlign" )
xcheckVertStack = xDialog.getChild("checkVertStack" )
xcheckWrapTextAuto = xDialog.getChild("checkWrapTextAuto" )
xcheckHyphActive = xDialog.getChild("checkHyphActive" )
xcomboTextDirBox = xDialog.getChild("comboTextDirBox" )
select_by_text(comboboxHorzAlign, "Left" )
xspinIndentFrom.executeAction("UP" , tuple())
indentVal = get_state_as_dict(xspinIndentFrom)["Text" ]
select_by_text(xcomboboxVertAlign, "Top" )
xcheckVertStack.executeAction("CLICK" , tuple())
xcheckWrapTextAuto.executeAction("CLICK" , tuple())
xcheckHyphActive.executeAction("CLICK" , tuple())
select_by_text(xcomboTextDirBox, "Left-to-right (LTR)" )
#Verify- select cell A1
gridwin.executeAction("SELECT" , mkPropertyValues({"CELL" : "A1" }))
#format - cell
with self.ui_test.execute_dialog_through_command(".uno:FormatCellDialog" ) as xDialog:
xTabs = xDialog.getChild("tabcontrol" )
select_pos(xTabs, "3" )
comboboxHorzAlign = xDialog.getChild("comboboxHorzAlign" )
xspinIndentFrom = xDialog.getChild("spinIndentFrom" )
xcomboboxVertAlign = xDialog.getChild("comboboxVertAlign" )
xcheckVertStack = xDialog.getChild("checkVertStack" )
xcheckWrapTextAuto = xDialog.getChild("checkWrapTextAuto" )
xcheckHyphActive = xDialog.getChild("checkHyphActive" )
xcomboTextDirBox = xDialog.getChild("comboTextDirBox" )
self.assertEqual(get_state_as_dict(comboboxHorzAlign)["SelectEntryText" ], "Left" )
self.assertEqual(get_state_as_dict(xspinIndentFrom)["Text" ] == indentVal, True )
self.assertEqual(get_state_as_dict(xcomboboxVertAlign)["SelectEntryText" ], "Top" )
self.assertEqual(get_state_as_dict(xcheckVertStack)["Selected" ], "true" )
self.assertEqual(get_state_as_dict(xcheckWrapTextAuto)["Selected" ], "true" )
self.assertEqual(get_state_as_dict(xcheckHyphActive)["Selected" ], "true" )
self.assertEqual(get_state_as_dict(xcomboTextDirBox)["SelectEntryText" ], "Left-to-right (LTR)" )
def test_format_cell_asian_typography_tab(self):
with self.ui_test.create_doc_in_start_center("calc" ):
xCalcDoc = self.xUITest.getTopFocusWindow()
gridwin = xCalcDoc.getChild("grid_window" )
#select cell A1
gridwin.executeAction("SELECT" , mkPropertyValues({"CELL" : "A1" }))
#format - cell
with self.ui_test.execute_dialog_through_command(".uno:FormatCellDialog" ) as xDialog:
xTabs = xDialog.getChild("tabcontrol" )
select_pos(xTabs, "4" ) #tab Asian typography
xcheckForbidList = xDialog.getChild("checkForbidList" )
xcheckForbidList.executeAction("CLICK" , tuple())
#Verify- select cell A1
gridwin.executeAction("SELECT" , mkPropertyValues({"CELL" : "A1" }))
#format - cell
with self.ui_test.execute_dialog_through_command(".uno:FormatCellDialog" ) as xDialog:
xTabs = xDialog.getChild("tabcontrol" )
select_pos(xTabs, "4" )
xcheckForbidList = xDialog.getChild("checkForbidList" )
self.assertEqual(get_state_as_dict(xcheckForbidList)["Selected" ], "true" )
def test_minimal_border_width(self):
#borderpage.ui, tdf#137790
with self.ui_test.create_doc_in_start_center("calc" ):
#set points pt measurement
with change_measurement_unit(self, "Point" ):
xCalcDoc = self.xUITest.getTopFocusWindow()
gridwin = xCalcDoc.getChild("grid_window" )
#select cell A1
gridwin.executeAction("SELECT" , mkPropertyValues({"CELL" : "A1" }))
#format - cell
with self.ui_test.execute_dialog_through_command(".uno:FormatCellDialog" ) as xDialog:
xTabs = xDialog.getChild("tabcontrol" )
select_pos(xTabs, "5" ) #tab Borders
linewidthmf = xDialog.getChild("linewidthmf" )
xLineSet = xDialog.getChild('lineset' )
# check line-width for default solid line
self.assertEqual('0' , get_state_as_dict(xLineSet)['SelectedItemPos' ])
widthVal = get_state_as_dict(linewidthmf)["Text" ]
self.assertEqual(widthVal, '0.75 pt' )
# set line style to "double" (minimal width is taken)
xLineSet.executeAction("CHOOSE" , mkPropertyValues({"POS" : '16' }))
widthVal = get_state_as_dict(linewidthmf)["Text" ]
# minimum predefined width is Medium (1.50 pt)
self.assertEqual(widthVal, '1.50 pt' )
# set line style to "solid"
xLineSet.executeAction("CHOOSE" , mkPropertyValues({"POS" : "1" }))
widthVal = get_state_as_dict(linewidthmf)["Text" ]
self.assertEqual(widthVal, '1.50 pt' )
# make custom line width
linewidthmf.executeAction("UP" , tuple())
linewidthmf.executeAction("UP" , tuple())
linewidthmf.executeAction("UP" , tuple())
widthVal = get_state_as_dict(linewidthmf)["Text" ]
self.assertEqual(widthVal, '2.25 pt' )
# set line style to "double" (minimal width is not taken)
xLineSet.executeAction("CHOOSE" , mkPropertyValues({"POS" : "8" }))
widthVal = get_state_as_dict(linewidthmf)["Text" ]
self.assertEqual(widthVal, '2.25 pt' )
def test_format_cell_borders_tab(self):
#borderpage.ui
with self.ui_test.create_doc_in_start_center("calc" ):
#set points pt measurement
with change_measurement_unit(self, "Point" ):
xCalcDoc = self.xUITest.getTopFocusWindow()
gridwin = xCalcDoc.getChild("grid_window" )
#select cell A1
gridwin.executeAction("SELECT" , mkPropertyValues({"CELL" : "A1" }))
#format - cell
with self.ui_test.execute_dialog_through_command(".uno:FormatCellDialog" ) as xDialog:
xTabs = xDialog.getChild("tabcontrol" )
select_pos(xTabs, "5" ) #tab Borders
xsync = xDialog.getChild("sync" )
xleftmf = xDialog.getChild("leftmf" )
xrightmf = xDialog.getChild("rightmf" )
xtopmf = xDialog.getChild("topmf" )
xbottommf = xDialog.getChild("bottommf" )
xsync.executeAction("CLICK" , tuple()) #uncheck Synchronize
xleftmf.executeAction("UP" , tuple())
xrightmf.executeAction("UP" , tuple())
xrightmf.executeAction("UP" , tuple())
xtopmf.executeAction("UP" , tuple())
xtopmf.executeAction("UP" , tuple())
xtopmf.executeAction("UP" , tuple())
xbottommf.executeAction("UP" , tuple())
xbottommf.executeAction("UP" , tuple())
xbottommf.executeAction("UP" , tuple())
xbottommf.executeAction("UP" , tuple())
leftVal = get_state_as_dict(xleftmf)["Text" ]
rightVal = get_state_as_dict(xrightmf)["Text" ]
topVal = get_state_as_dict(xtopmf)["Text" ]
bottomVal = get_state_as_dict(xbottommf)["Text" ]
# Verify select cell A1
gridwin.executeAction("SELECT" , mkPropertyValues({"CELL" : "A1" }))
#format - cell
with self.ui_test.execute_dialog_through_command(".uno:FormatCellDialog" ) as xDialog:
xTabs = xDialog.getChild("tabcontrol" )
select_pos(xTabs, "5" ) #tab Borders
xsync = xDialog.getChild("sync" )
xleftmf = xDialog.getChild("leftmf" )
xrightmf = xDialog.getChild("rightmf" )
xtopmf = xDialog.getChild("topmf" )
xbottommf = xDialog.getChild("bottommf" )
self.assertEqual(get_state_as_dict(xsync)["Selected" ], "false" )
self.assertEqual(get_state_as_dict(xleftmf)["Text" ] == leftVal, True )
self.assertEqual(get_state_as_dict(xrightmf)["Text" ] == rightVal, True )
self.assertEqual(get_state_as_dict(xtopmf)["Text" ] == topVal, True )
self.assertEqual(get_state_as_dict(xbottommf)["Text" ] == bottomVal, True )
def test_format_cell_cell_protection_tab(self):
#cellprotectionpage.ui
with self.ui_test.create_doc_in_start_center("calc" ):
xCalcDoc = self.xUITest.getTopFocusWindow()
gridwin = xCalcDoc.getChild("grid_window" )
#select cell A1
gridwin.executeAction("SELECT" , mkPropertyValues({"CELL" : "A1" }))
#format - cell
with self.ui_test.execute_dialog_through_command(".uno:FormatCellDialog" ) as xDialog:
xTabs = xDialog.getChild("tabcontrol" )
select_pos(xTabs, "6" ) #tab Cell protection
xcheckHideFormula = xDialog.getChild("checkHideFormula" )
xcheckHideAll = xDialog.getChild("checkHideAll" )
xcheckHidePrinting = xDialog.getChild("checkHidePrinting" )
xcheckHideFormula.executeAction("CLICK" , tuple())
xcheckHideAll.executeAction("CLICK" , tuple())
xcheckHidePrinting.executeAction("CLICK" , tuple())
# Verify select cell A1
gridwin.executeAction("SELECT" , mkPropertyValues({"CELL" : "A1" }))
#format - cell
with self.ui_test.execute_dialog_through_command(".uno:FormatCellDialog" ) as xDialog:
xTabs = xDialog.getChild("tabcontrol" )
select_pos(xTabs, "6" ) #tab Borders
xcheckHideFormula = xDialog.getChild("checkHideFormula" )
xcheckHideAll = xDialog.getChild("checkHideAll" )
xcheckHidePrinting = xDialog.getChild("checkHidePrinting" )
self.assertEqual(get_state_as_dict(xcheckHideFormula)["Selected" ], "false" )
self.assertEqual(get_state_as_dict(xcheckHideAll)["Selected" ], "false" )
self.assertEqual(get_state_as_dict(xcheckHidePrinting)["Selected" ], "false" )
def test_tdf130762(self):
with self.ui_test.create_doc_in_start_center("calc" ):
xCalcDoc = self.xUITest.getTopFocusWindow()
gridwin = xCalcDoc.getChild("grid_window" )
#select cell A1
gridwin.executeAction("SELECT" , mkPropertyValues({"CELL" : "A1" }))
#format - cell
with self.ui_test.execute_dialog_through_command(".uno:FormatCellDialog" ) as xDialog:
xTabs = xDialog.getChild("tabcontrol" )
select_pos(xTabs, "3" ) #tab Alignment
xspinDegrees = xDialog.getChild("spinDegrees" )
self.assertEqual(get_state_as_dict(xspinDegrees)["Text" ].replace('°' , '' ), "0" )
xspinDegrees.executeAction("DOWN" , tuple())
self.assertEqual(get_state_as_dict(xspinDegrees)["Text" ].replace('°' , '' ), "355" )
xspinDegrees.executeAction("UP" , tuple())
self.assertEqual(get_state_as_dict(xspinDegrees)["Text" ].replace('°' , '' ), "0" )
def test_format_cell_spell_out_numbering(self):
#numberingformatpage.ui
with self.ui_test.create_doc_in_start_center("calc" ):
xCalcDoc = self.xUITest.getTopFocusWindow()
gridwin = xCalcDoc.getChild("grid_window" )
#select cell A1
gridwin.executeAction("SELECT" , mkPropertyValues({"CELL" : "A1" }))
#format - cell
with self.ui_test.execute_dialog_through_command(".uno:FormatCellDialog" ) as xDialog:
xTabs = xDialog.getChild("tabcontrol" )
select_pos(xTabs, "0" ) #tab Numbers
formatlb = xDialog.getChild("formatlb" )
xformatted = xDialog.getChild("formatted" )
# NatNum12 number formats
entry = formatlb.getChild("11" )
self.assertEqual(get_state_as_dict(entry)["Text" ], "ONE HUNDRED" )
entry.executeAction("SELECT" , tuple())
self.assertEqual(get_state_as_dict(xformatted)["Text" ], "[NatNum12 upper cardinal]0" )
entry = formatlb.getChild("10" )
self.assertEqual(get_state_as_dict(entry)["Text" ], "One Hundred" )
entry.executeAction("SELECT" , tuple())
self.assertEqual(get_state_as_dict(xformatted)["Text" ], "[NatNum12 title cardinal]0" )
entry = formatlb.getChild("9" )
self.assertEqual(get_state_as_dict(entry)["Text" ], "One hundred" )
entry.executeAction("SELECT" , tuple())
self.assertEqual(get_state_as_dict(xformatted)["Text" ], "[NatNum12 capitalize cardinal]0" )
entry = formatlb.getChild("8" )
self.assertEqual(get_state_as_dict(entry)["Text" ], "one hundred" )
entry.executeAction("SELECT" , tuple())
self.assertEqual(get_state_as_dict(xformatted)["Text" ], "[NatNum12 cardinal]0" )
# NatNum12 en_US currency formats
categorylb = xDialog.getChild("categorylb" )
entry = categorylb.getChild("4" ) # Currency
entry.executeAction("SELECT" , tuple())
currencies = ["ONE U.S. DOLLAR AND TWENTY CENTS" , "ONE U.S. DOLLAR" , "One U.S. Dollar and Twenty Cents" , "One U.S. Dollar" ]
formats = ["[NatNum12 upper USD]0.00" , "[NatNum12 upper USD]0" , "[NatNum12 title USD]0.00" , "[NatNum12 title USD]0" ]
# handle different order of the items
numCurrency = 0
numFormat = 0
for i in formatlb.getChildren():
entry = formatlb.getChild(i)
if get_state_as_dict(entry)["Text" ] in currencies:
numCurrency = numCurrency + 1
entry.executeAction("SELECT" , tuple())
xformatted = xDialog.getChild("formatted" )
if get_state_as_dict(xformatted)["Text" ] in formats:
numFormat = numFormat + 1
self.assertEqual(4, numCurrency)
self.assertEqual(4, numFormat)
# vim: set shiftwidth=4 softtabstop=4 expandtab:
Messung V0.5 C=89 H=93 G=90
¤ Dauer der Verarbeitung: 0.6 Sekunden
¤
*© Formatika GbR, Deutschland