WPF code samples (.NET SDK)
End-to-End: Reserve a flight using WPF objects
The example below demonstrates how to create a program which simulates a flight booking on the Flight GUI sample application.
The example includes a SetSecure step for logging in.
[Test] public void TestFlightSampleApplication() { using (new FlightGuiSampleWpfApp()) { // Identify the main Flight GUI sample application window _flightGUIAapplicationWindow = Desktop.Describe<IWindow>(new WindowDescription { ObjectName = @"OpenText MyFlight Sample", FullType = @"window", WindowTitleRegExp = @"OpenText MyFlight Sample" }); PerformLogin(); SearchForFlight(); OpenFlightsTable(); SelectFlight(); FinishOrder(); VerifyOrderCompleted(); ExitFlightApp(); } } private void PerformLogin() { // Sample showing how to perform the actions to login in to the Flight GUI sample application // Identify the user name field var userNameEdit = _flightGUIAapplicationWindow.Describe<IEditField>(new EditFieldDescription { ObjectName = @"agentName" }); userNameEdit.SetText("john"); // Fill in the user name field #region Doc_Wpf_SetSecure // Identify the password field var passwordEdit = _flightGUIAapplicationWindow.Describe<IEditField>(new EditFieldDescription { ObjectName = @"password" }); // Enter a value for the password. You use the encryption utility to extract the encrypted string (see the OpenText Functional Testing for Developers documentation). // Plain text is used for the example code. passwordEdit.SetSecure("HP"); #endregion // Identify the OK button var okButton = _flightGUIAapplicationWindow.Describe<IButton>(new ButtonDescription { Text = @"OK", ObjectName = @"okButton" }); // Click the OK button okButton.Click(); } private void SearchForFlight() { ChooseFlightSourceAndDestination(); ChooseFlightDate(); ChooseFlightClassAndNumberOfTickets(); } #region Doc_Wpf_Combobox_Samples // This example selects items from a combo box using index and string values. private void ChooseFlightSourceAndDestination() { // Identify the "from city" combobox var fromCityComboBox = _flightGUIAapplicationWindow.Describe<IComboBox>(new ComboBoxDescription { ObjectName = @"fromCity" }); // Select an item in the combo box using a (0-based) numeric index. fromCityComboBox.Select(3); // Identify the "to city" combo box var toCityComboBox = _flightGUIAapplicationWindow.Describe<IComboBox>(new ComboBoxDescription { ObjectName = @"toCity" }); // Select an item in the combo box using a string value. toCityComboBox.Select("London"); } #endregion #region Doc_Wpf_SettingWpfDateControl // This example locates and sets the date of the date picker control. private void ChooseFlightDate() { // Identify the date picker control. The date picker is identified through the main window and not directly from the Flight GUI applications. var flightDatePicker = Desktop.Describe<IWindow>(new WindowDescription { ObjectName = @"OpenText MyFlight Sample", FullType = @"window", WindowTitleRegExp = @"OpenText MyFlight Sample" }).Describe<ICalendar>(new CalendarDescription { ObjectName = @"datePicker" }); // Select the flight date. flightDatePicker.SetDate(new DateTime(year:2025, month:8, day:1)); } #endregion private void ChooseFlightClassAndNumberOfTickets() { // Identify the flight class combobox var flightClassCombobox = _flightGUIAapplicationWindow.Describe<IComboBox>(new ComboBoxDescription { ObjectName = @"Class", FullType = @"combo box" }); flightClassCombobox.Select("Business"); // Choose the "Business" flight class // Identify the number of tickets combobox var numOfTickets = _flightGUIAapplicationWindow.Describe<IComboBox>(new ComboBoxDescription { ObjectName = @"numOfTickets" }); numOfTickets.Select("2"); // Choose 2 tickets to buy } private void OpenFlightsTable() { // Identify the "FIND FLIGHTS" button var findFlightsButton = _flightGUIAapplicationWindow.Describe<IButton>(new ButtonDescription { Text = @"FIND FLIGHTS", ObjectName = @"FIND FLIGHTS" }); findFlightsButton.Click(); // click on the button } #region Doc_Wpf_SettingWpfDataGridControlRow // This example selects a row in the data grid. private void SelectFlight() { // Identify the flights data grid (ITable). var flightsDataGrid = _flightGUIAapplicationWindow.Describe<ITable>(new TableDescription { ObjectName = @"flightsDataGrid" }); // Select the third row in the data grid. flightsDataGrid.SelectRow(2); var selectFlightButton = _flightGUIAapplicationWindow.Describe<IButton>(new ButtonDescription { Text = @"SELECT FLIGHT", ObjectName = @"selectFlightBtn" }); // Click the "Select Flight" button. selectFlightButton.Click(); } #endregion private void FinishOrder() { // Identify the passenger name edit field var passengerNameField = _flightGUIAapplicationWindow.Describe<IEditField>(new EditFieldDescription { ObjectName = @"passengerName" }); passengerNameField.SetText("John Doe"); // Enter the passenger name // Identify the total price field var totalPrice = _flightGUIAapplicationWindow.Describe<IUiObject>(new UiObjectDescription { ObjectName = @"totalPrice" }); Verify.AreEqual("$652.00", totalPrice.Text, "Verify Price", "Verify the price is $652.00."); // Verify the price is $652.00 // Identify the "Order" button var oderButton = _flightGUIAapplicationWindow.Describe<IButton>(new ButtonDescription { Text = @"ORDER", ObjectName = @"orderBtn" }); oderButton.Click(); // Click on the "Order" button to perform the flight reservation } #region Doc_Wpf_WaitUntilSample private void VerifyOrderCompleted() { // Identify the order completed text var orderCompletedControl = _flightGUIAapplicationWindow.Describe<IUiObject>(new UiObjectDescription { ObjectName = @"orderCompleted" }); // The next line shows how to use the WaitUntil method with C# Func delegate to wait for the control to become visible. // The WaitUntil method passes the control's interface instance - in this case, an IUiObject - to the C# Func delegate as a parameter. // The C# Func delegate expects a single parameter and returns a boolean value. // In this sample, the C# Func delegate returns the IsVisible value of the control passed to it as a parameter. // The WaitUntil method then waits for the C# Func delegate to return true, for a default amount of time. // The C# Func delegate is called every few milliseconds, until it returns true, or until the default timeout expires. bool controlIsVisible = orderCompletedControl.WaitUntil((control) => { return control.IsVisible; }); Verify.IsTrue(controlIsVisible, "Verify Control is Visible", "Verify the 'order completed' control is visible."); // Verify the control is visible string orderCompletedControlText = orderCompletedControl.Text; // Get the "order completed" control's text Verify.IsTrue(orderCompletedControlText.EndsWith("completed"), "Verify Order Completed", "Verify the 'order completed' control's text is ending with the string 'completed'."); // Verify the "order completed" control's text is ending with the string "completed". } #endregion private void ExitFlightApp() { _flightGUIAapplicationWindow.Close(); }
Use WaitUntil to complete a flight reservation
private void VerifyOrderCompleted() { // Identify the order completed text var orderCompletedControl = _flightGUIAapplicationWindow.Describe<IUiObject>(new UiObjectDescription { ObjectName = @"orderCompleted" }); // The next line shows how to use the WaitUntil method with C# Func delegate to wait for the control to become visible. // The WaitUntil method passes the control's interface instance - in this case, an IUiObject - to the C# Func delegate as a parameter. // The C# Func delegate expects a single parameter and returns a boolean value. // In this sample, the C# Func delegate returns the IsVisible value of the control passed to it as a parameter. // The WaitUntil method then waits for the C# Func delegate to return true, for a default amount of time. // The C# Func delegate is called every few milliseconds, until it returns true, or until the default timeout expires. bool controlIsVisible = orderCompletedControl.WaitUntil((control) => { return control.IsVisible; }); Verify.IsTrue(controlIsVisible, "Verify Control is Visible", "Verify the 'order completed' control is visible."); // Verify the control is visible string orderCompletedControlText = orderCompletedControl.Text; // Get the "order completed" control's text Verify.IsTrue(orderCompletedControlText.EndsWith("completed"), "Verify Order Completed", "Verify the 'order completed' control's text is ending with the string 'completed'."); // Verify the "order completed" control's text is ending with the string "completed". }
Select items from a combo box control
This example selects items from a combo box using index and string values.
private void ChooseFlightSourceAndDestination() { // Identify the "from city" combobox var fromCityComboBox = _flightGUIAapplicationWindow.Describe<IComboBox>(new ComboBoxDescription { ObjectName = @"fromCity" }); // Select an item in the combo box using a (0-based) numeric index. fromCityComboBox.Select(3); // Identify the "to city" combo box var toCityComboBox = _flightGUIAapplicationWindow.Describe<IComboBox>(new ComboBoxDescription { ObjectName = @"toCity" }); // Select an item in the combo box using a string value. toCityComboBox.Select("London"); }
Set the date in a DatePicker control
This example locates and sets the date of the date picker control.
private void ChooseFlightDate() { // Identify the date picker control. The date picker is identified through the main window and not directly from the Flight GUI applications. var flightDatePicker = Desktop.Describe<IWindow>(new WindowDescription { ObjectName = @"OpenText MyFlight Sample", FullType = @"window", WindowTitleRegExp = @"OpenText MyFlight Sample" }).Describe<ICalendar>(new CalendarDescription { ObjectName = @"datePicker" }); // Select the flight date. flightDatePicker.SetDate(new DateTime(year:2025, month:8, day:1)); }
Select a row in a DataGrid control
This example selects a row in the data grid.
private void SelectFlight() { // Identify the flights data grid (ITable). var flightsDataGrid = _flightGUIAapplicationWindow.Describe<ITable>(new TableDescription { ObjectName = @"flightsDataGrid" }); // Select the third row in the data grid. flightsDataGrid.SelectRow(2); var selectFlightButton = _flightGUIAapplicationWindow.Describe<IButton>(new ButtonDescription { Text = @"SELECT FLIGHT", ObjectName = @"selectFlightBtn" }); // Click the "Select Flight" button. selectFlightButton.Click(); }
Change a toggle button state
This example locates a toggle button and changes the toggle button state.
[Test] public void TestWpfToggleButton() { // Identify the application and assign it to an IWindow object. var appMainWindow = Desktop.Describe<IWindow>(new WindowDescription { ObjectName = @"MainWindow", FullType = @"window", WindowTitleRegExp = @"MainWindow" }); // Identify the WPF toggle button. var buttonWithToggleButtonSupport = appMainWindow.Describe<IButton>(new ButtonDescription { Text = @"Toggle Button", ObjectName = @"Button4" }); IToggleButton toggleButton = buttonWithToggleButtonSupport.ToggleButton; // Sets the toggle button's state to checked. toggleButton.Set(CheckedState.Checked); // Changes the toggle button state. if (toggleButton.IsChecked) { toggleButton.Set(CheckedState.Unchecked); } else { toggleButton.Set(CheckedState.Checked); } }