profile > panelwidget: modules
assertElementPresent panelwidget-profilemodules-title
assertElementPresent link=General Settings General Settings
assertElementPresent link=Personal Data
assertElementPresent panelwidget-profilemodules-toggle
storeElementHeight css=div#panelwidget-profilemodules.panelWidget widgetHeight
assertExpression javascript{storedVars['widgetHeight'] > 50} true
click css=#panelwidget-profilemodules-h1 span#panelwidget-profilemodules-toggle.toggle
pause 500
waitForCondition selenium.browserbot.getUserWindow().Ajax.activeRequestCount == 0 10000
assertElementPresent css=div#panelwidget-profilemodules.panelWidget h1#panelwidget-profilemodules-h1.expand span#panelwidget-profilemodules-toggle.toggle
storeElementHeight css=div#panelwidget-profilemodules.panelWidget widgetHeight
assertExpression javascript{storedVars['widgetHeight'] < 40} true
clickAndWait css=div#header div.inner div#navi-main ul#navi-main-list.navilist li.itemProject a
storeTitle varPageTitle
assertExpression javascript{storedVars['varPageTitle'].substr(0,  storedVars['varPageTitle'].indexOf("-") - 1);} Projects
clickAndWait css=a#todoyuprofileheadletprofile-button.button
storeTitle varPageTitle
assertExpression javascript{storedVars['varPageTitle'].substr(0,  storedVars['varPageTitle'].indexOf("-") - 1);} My Profile
storeElementHeight css=div#panelwidget-profilemodules.panelWidget widgetHeight
assertExpression javascript{storedVars['widgetHeight'] < 40} true
click css=#panelwidget-profilemodules-h1 span#panelwidget-profilemodules-toggle.toggle
pause 500
waitForCondition selenium.browserbot.getUserWindow().Ajax.activeRequestCount == 0 10000
assertElementNotPresent css=h1#panelwidget-profilemodules-h1.expand span#panelwidget-profilemodules-toggle.toggle
storeElementHeight css=div#panelwidget-profilemodules.panelWidget widgetHeight
assertExpression javascript{storedVars['widgetHeight'] > 130} true
click link=General Settings
pause 100
waitForCondition selenium.browserbot.getUserWindow().Ajax.activeRequestCount == 0 10000
assertElementPresent //p[@id='profile-general-tab-main-label']/span[3]
assertElementPresent //p[@id='profile-general-tab-password-label']/span[3]
assertTextPresent Language
assertElementPresent general-0-field-locale
assertElementPresent general-0-field-save
click link=Personal Data
pause 100
waitForCondition selenium.browserbot.getUserWindow().Ajax.activeRequestCount == 0 10000
assertElementPresent //p[@id='contact-tab-contact-label']/span[3]
assertElementPresent person-1-field-email
assertElementPresent person-1-field-salutation
assertElementPresent person-1-field-lastname
assertElementPresent person-1-field-firstname
assertElementPresent person-1-field-shortname
assertElementPresent person-1-field-birthday
assertElementPresent person-1-field-comment
assertElementPresent person-1-field-upload
assertElementPresent add-record
assertElementPresent //button[@id='add-record' and @type='button' and @onclick="Todoyu.Form.addRecord(1, 'person', 'address', 'contact', 'person');this.blur()"]
assertElementPresent expand-all
assertElementPresent //button[@id='add-record' and @type='button' and @onclick="Todoyu.Form.addRecord(1, 'person', 'company', 'contact', 'person');this.blur()"]
assertElementPresent //button[@id='expand-all' and @type='button' and @onclick="Todoyu.Form.toggleForeignRecords(['company']);this.blur()"]
assertElementPresent person-1-field-save
type css=input#person-1-field-email.text
type css=input#person-1-field-lastname.text
type css=input#person-1-field-firstname.text
click css=button#person-1-field-save.button
pause 500
assertTextPresent Saving Person Failed
assertTextPresent The value entered is not valid
assertElementPresent css=div#formElement-person-1-field-email.error
assertElementPresent css=div#formElement-person-1-field-lastname.error
assertElementPresent css=div#formElement-person-1-field-firstname.error
click link=General Settings
pause 100