#=============================================================================================
# @TITLE			Checking second window - Recovery Wizard.
#
# @NUMBER			DBM2_FKT_02212
#
# @DESCRIPTION		Checking window and content. Step is to restart the database and
# @					close the wizard.
#
# @EXP_RESULT		The 'Back' and 'Next' button works. Restart will work as well.
#
# @REQUIREMENTS		"Database Manager" is installed.
#=============================================================================================
static WizardOpen = 1;
TestName = "DBM2_FKT_02212";
#=============================================================================================
# @STEP 1			Checking window and clicking 'Next'.
#=============================================================================================
if (win_exists("Database Manager Recovery Wizard",0) == 0) {
	
	tl_step("Database Manager Recovery Wizard - Window Check", "0", "Window still open. - TN: " & TestName);
	
	set_window("Database Manager Recovery Wizard", 1);
#=============================================================================================
# @STEP 2			Clicking the 'Back' button.
#=============================================================================================
	if (win_exists("DBMWre2_0", 0) == 0) {
			
		tl_step ("Performing second recovery start","1","Recovery wizard crashed. - TN: " & TestName);
		set_window ("DBMWre2_0", 2);
		button_press ("OK");
		
		if (win_exists("DBMApp2_0", 0) == 0) {
			set_window ("DBMApp2_0", 2);
			button_press ("OK");
		}
		#Setting database to Online			
		set_window("SAP DB Database Manager", 1);
		toolbar_button_press("msvb_lib_toolbar_1","Online",LEFT);
		wait(10);
	} else {
	
		button_press ("< Back");
		
		wait(5);
		
		if (win_exists("DBMWre2_0", 0) == 0) {
			
			tl_step ("Performing second recovery start","1","Recovery wizard crashed. - TN: " & TestName);
			set_window ("DBMWre2_0", 2);
			button_press ("OK");
			
			if (win_exists("DBMApp2_0", 0) == 0) {
				set_window ("DBMApp2_0", 2);
				button_press ("OK");
			}
			#Setting database to Online			
			set_window("SAP DB Database Manager", 1);
			toolbar_button_press("msvb_lib_toolbar_1","Online",LEFT);
			wait(10);
		} else {
		
			ActiveX_get_info("DBMWfr2.Framework", "HeaderTitle", HeaderTitle1);
			ActiveX_get_info("DBMWfr2.Framework", "HeaderSubtitle", HeaderSubtitle1);
			
			if (HeaderTitle1 == "Medium for Recovery" &&
				HeaderSubtitle1 == "Create/Select a medium for the recovery.") {
				
				tl_step("Database Manager Recovery Wizard - Step Welcome title","0", "HeaderTitle: " & HeaderTitle1 & " not expected. - TN: " & TestName);
				tl_step("Database Manager Recovery Wizard - Step Welcome title","0", "HeaderSubtitle: " & HeaderSubtitle1 & " not expected. - TN: " & TestName);
			} else {
				tl_step("Database Manager Recovery Wizard - Step Welcome title","1", "HeaderTitle: " & HeaderTitle1 & " not expected. - TN: " & TestName);
				tl_step("Database Manager Recovery Wizard - Step Welcome title","1", "HeaderSubtitle: " & HeaderSubtitle1 & " not expected. - TN: " & TestName);
			}
#=============================================================================================
# @STEP 3			Clicking the 'Next' button and checking the window content.
#=============================================================================================
			button_press ("Next >");
			wait(5);
			ActiveX_get_info("DBMWfr2.Framework", "HeaderTitle", HeaderTitle2);
			ActiveX_get_info("DBMWfr2.Framework", "HeaderSubtitle", HeaderSubtitle2);
			
			if (HeaderTitle2 == "Start Recovery" &&
				HeaderSubtitle2 == "Check your selection and start the recovery.") {
				
				tl_step("Database Manager Recovery Wizard - Step title","0", "HeaderTitle: " & HeaderTitle2 & " as expected. - TN: " & TestName);
				tl_step("Database Manager Recovery Wizard - Step title","0", "HeaderSubtitle: " & HeaderSubtitle2 & " as expected. - TN: " & TestName);
			} else {
				tl_step("Database Manager Recovery Wizard - Step title","1", "HeaderTitle: " & HeaderTitle2 & " not expected. - TN: " & TestName);
				tl_step("Database Manager Recovery Wizard - Step title","1", "HeaderSubtitle: " & HeaderSubtitle2 & " not expected. - TN: " & TestName);
			}
			
			L_RC_1 = obj_exists("lvwItems",0);
			L_RC_2 = obj_exists("Restore database until a specific time.",0);
			
			L_RC_4 = obj_exists("< Back",0);
			L_RC_5 = obj_exists("Start",0);
			L_RC_6 = obj_exists("Cancel",0);
			
			if (L_RC_1 == E_OK &&
				L_RC_2 == E_OK &&
				L_RC_4 == E_OK &&
				L_RC_5 == E_OK &&
				L_RC_6 == E_OK) {
				
				tl_step("Start Recovery - Checking objects", "0", "All objects dispayed. - TN: " & TestName);
				
				list_get_info("lvwItems", "count", count);
				obj_get_info("Restore database until a specific time.", "value", value1);
				
				button_get_info("< Back", "enabled", value2);
				button_get_info("Start", "enabled", value3);
				button_get_info("Cancel", "enabled", value4);
		
				if (count == 1 &&
					value1 == 0 &&
					value2 == 1 &&
					value3 == 1 &&
					value4 == 1) {
					
					tl_step("Start Recovery - Checking button state and text.","0","All buttons in correct state and info text correct. - TN: " & TestName);
				} else {
					
					tl_step("Start Recovery - Checking button state and text.","1","Not all buttons in correct state or info text incorrect. - TN: " & TestName);
					
					tl_step("Start Recovery - Checking button state", "1", count & " expected 1 (Listitem count). - TN: " & TestName);
					tl_step("Start Recovery - Checking button state", "1", value1 & " expected 0 (Restore database until a specific time. - value). - TN: " & TestName);
					tl_step("Start Recovery - Checking button state", "1", value2 & " expected 1 (< Back). - TN: " & TestName);
					tl_step("Start Recovery - Checking button state", "1", value3 & " expected 1 (Start). - TN: " & TestName);
					tl_step("Start Recovery - Checking button state", "1", value4 & " expected 1 (Cancel). - TN: " & TestName);
				}		
#=============================================================================================
# @STEP 4			Clicking the 'Start' button and checking the window content.
#=============================================================================================
				set_window ("Database Manager Recovery Wizard", 3);
				button_press ("Start");
				
				wait(10);
				
				if (win_exists("DBMWre2_0", 0) == 0) {
					
					tl_step ("Performing second recovery start","1","Recovery wizard crashed. - TN: " & TestName);
					set_window ("DBMWre2_0", 2);
					button_press ("OK");
					
					if (win_exists("DBMApp2_0", 0) == 0) {
						set_window ("DBMApp2_0", 2);
						button_press ("OK");
					}
					#Setting database to Online			
					set_window("SAP DB Database Manager", 1);
					toolbar_button_press("msvb_lib_toolbar_1","Online",LEFT);
					wait(10);
				} else {
#=============================================================================================
# @STEP 5			Checking window content.
#=============================================================================================		
					ActiveX_get_info("DBMWfr2.Framework", "HeaderTitle", HeaderTitle3);
					ActiveX_get_info("DBMWfr2.Framework", "HeaderSubtitle", HeaderSubtitle3);
					
					if (HeaderTitle3 == "Recovery Ready" &&
						HeaderSubtitle3 == "Recovery has completed successfully.") {
						
						tl_step("Database Manager Recovery Wizard - Step Welcome title","0", "HeaderTitle: " & HeaderTitle3 & " not expected. - TN: " & TestName);
						tl_step("Database Manager Recovery Wizard - Step Welcome title","0", "HeaderSubtitle: " & HeaderSubtitle3 & " not expected. - TN: " & TestName);
					} else {
						tl_step("Database Manager Recovery Wizard - Step Welcome title","1", "HeaderTitle: " & HeaderTitle3 & " not expected. - TN: " & TestName);
						tl_step("Database Manager Recovery Wizard - Step Welcome title","1", "HeaderSubtitle: " & HeaderSubtitle3 & " not expected. - TN: " & TestName);
					}
#=============================================================================================
# @STEP 6			Restart database and close wizard.
#=============================================================================================		
					set_window ("Database Manager Recovery Wizard", 3);
					
					button_press ("Start");
					
					obj_wait_info("Close_1","enabled",TRUE,30);
					
					button_press ("Close_1");
#=============================================================================================
# @STEP 7			Checking state of database.
#=============================================================================================
					set_window("SAP DB Database Manager", 1);
					toolbar_get_button_info("msvb_lib_toolbar_1", "Online", ENABLED, state);
			
					if (state == 0) {
						tl_step("Database Manager Recovery Wizard - Restart and close - Before refresh","0","Database in correct state --> Online. - TN: " & TestName);
					} else {
						tl_step("Database Manager Recovery Wizard - Restart and close - Before refresh","1","Database in incorrect state --> Offline or Admin. - TN: " & TestName);
					}
					
					set_window("SAP DB Database Manager", 1);
					toolbar_button_press("msvb_lib_toolbar","Refresh",LEFT);
					toolbar_get_button_info("msvb_lib_toolbar_1", "Online", ENABLED, state);
			
					if (state == 0) {
						tl_step("Database Manager Recovery Wizard - Restart and close - After refresh","0","Database in correct state --> Online. - TN: " & TestName);
					} else {
						tl_step("Database Manager Recovery Wizard - Restart and close - After refresh","1","Database in incorrect state --> Offline or Admin. - TN: " & TestName);
					}
				
				}
			} else {
				tl_step("Start Recovery - Checking object of window.", "1", "Not all objects dispayed. - TN: " & TestName);
				
				tl_step("Start Recovery - Checking object of window.", "1", L_RC_1 & " expected 0. - TN: " & TestName);
				tl_step("Start Recovery - Checking object of window.", "1", L_RC_2 & " expected 0. - TN: " & TestName);
				tl_step("Start Recovery - Checking object of window.", "1", L_RC_4 & " expected 0. - TN: " & TestName);
				tl_step("Start Recovery - Checking object of window.", "1", L_RC_5 & " expected 0. - TN: " & TestName);
				tl_step("Start Recovery - Checking object of window.", "1", L_RC_6 & " expected 0. - TN: " & TestName);
			}
		}
	}
} else {
	
	tl_step("Database Manager Recovery Wizard - Window Check", "1", "Window not open. - TN: " & TestName);
	WizardOpen = 0;
}
