#=============================================================================================
# @TITLE				Database Wizards - Main Test.
#
# @NUMBER				DBM2_FKT_00201
#
# @DESCRIPTION			Invoking the following tests:
# @							- DBM_FKT_02020 - DBM_FKT_02031;
# @							- DBM_FKT_02020, DBM_FKT_02021, DBM_FKT_02032 - DBM_FKT_02041;
# @							- DBM_FKT_02020, DBM_FKT_02021, DBM_FKT_02045 - DBM_FKT_02053;
# @							- DBM_FKT_02020, DBM_FKT_02021, DBM_FKT_02045, DBM_FKT_02054 - DBM_FKT_02056;
# @							- DBM_FKT_02020, DBM_FKT_02021, DBM_FKT_02060 - DBM_FKT_02062;
# @							- DBM_FKT_02020, DBM_FKT_02021, DBM_FKT_02060, DBM_FKT_02063;
#
# @EXP_RESULT			The tests pass throught.
#
# @REQUIREMENTS		
#=============================================================================================
public function trim (in str) {
	if (substr(str, 1, 1) == " ") {

		str = trim(substr(str, 2));
	}
	if (substr(str, length(str)) == " ") {
		str = trim(substr(str, 1, length(str)-1));
	}
	return (str);
}

call_close "DBMGUI\Init"();
#=============================================================================================
# 					Loading GUI MAPS.
#=============================================================================================
GUI_load(guiFilePath & "DBMGUI_MAIN_3.gui");
GUI_load(guiFilePath & "DBMBWizard.gui");
#=============================================================================================
# @STEP 1			Open DBM GUI 2.
#=============================================================================================
call_close "DBMGUI\Main\Open_Close\DBM2_FKT_01000"();
#=============================================================================================
# @STEP 2			Getting current kernel version.
#=============================================================================================
set_window ("SAP DB Database Manager", 1);
list_select_item ("tvwFolders", "Servers;<Local>");
list_select_item ("lvwDatabases", database);
list_activate_item ("lvwDatabases", database);
wait(10);

# Kernel Version
if (win_exists("Shell DocObject View",0) == 0) {

	set_window("Shell DocObject View", 1);
	obj_get_text("Internet Explorer_Server", text);
} else {
	
	if (win_exists ("Shell DocObject View_1", 1) == E_OK) {
	
		set_window("Shell DocObject View_1", 1);
		obj_get_text("Internet Explorer_Server", text);
	} else {
	
		set_window("SAP DB Database Manager", 1);
		obj_get_text("Internet Explorer_Server", text);
	}
}


split (text, array_all, "\r\n");

for (i=0;i<100;i++) {
	
	if (match (array_all[i], "Version") != 0) {
		
		split (array_all[i], array_one_line, " ");
		kernel_version = array_one_line[2];
		break;
	}
}

if (trim(kernel_version) != "") {

	split (kernel_version, kernel_version_array, ".");
	
	kernel_version = kernel_version_array[1] & "." & kernel_version_array[2];
	
	minor_version = 100 + kernel_version_array[3] - 100;
	
	if (minor_version < 10 &&
		minor_version != "0") {
		
		kernel_version = kernel_version & ".0" & minor_version;
	} else {
		
		if (minor_version == "0") {
			kernel_version = kernel_version & ".00";
		} else {
			kernel_version = kernel_version & "." & minor_version;
		}
	}
	
	biuld_number = 100 + kernel_version_array[4] - 100;
	
	if (biuld_number != "") {
	
		if (biuld_number < 10 &&
			biuld_number != "") {
			
			kernel_version = kernel_version & ".0" & biuld_number;
		} else {
			if (biuld_number == "") {
				kernel_version = kernel_version & ".00";
			} else {
				kernel_version = kernel_version & "." & biuld_number;
			}
		}
	} else {
		
		kernel_version = kernel_version & ".00";
	}
} else {
	kernel_version = "n/a";
}
#=============================================================================================
# @STEP 3			Backup complete I
#=============================================================================================
public CompleteBackupRun; 
CompleteBackupRun = 1;
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02100"();	#Open wizard
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02101"();	#Checking welcome screen
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02102"();	#Checking kind of backup --> complete
if (match (kernel_version, "7.3.0") != 0||
	match (kernel_version, "7.2.5") != 0) {
	call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02103a"();	#with or without checkpoints
}
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02103"();	#Create/Select
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02104"();	#Parallel medium
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02105"();	#Single medium --> create
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02106"();	#Properties medium
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02107"();	#Copy medium
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02108"();	#Rename medium
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02109"();	#Delete medium
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02110"();	#Checking start backup - summary
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02111"();	#Perform backup - complete
#FILL DATA
invoke_application (testdir & "Fill\\filldata.exe"," -d " & database &" -u dbadmin,secret -n 5000", "", SW_SHOW);
wait(6);
#=============================================================================================
# @STEP 4			Backup complete II
#=============================================================================================
CompleteBackupRun  = 2;
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02100 "();	#Open wizard
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02101"();	#Checking welcome screen
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02102"();	#Checking kind of backup --> complete
if (match (kernel_version, "7.3.0") != 0||
	match (kernel_version, "7.2.5") != 0) {
	call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02103a"();	#with or without checkpoints
}
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02103"();	#Create/Select
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02104"();	#Parallel medium
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02105"();	#Single medium --> create
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02106"();	#Properties medium
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02107"();	#Copy medium
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02108"();	#Rename medium
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02109"();	#Delete medium
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02110"();	#Checking start backup - summary
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02111"();	#Perform backup - complete
#FILL DATA
invoke_application (testdir & "Fill\\filldata.exe"," -d " & database &" -u dbadmin,secret -n 5000", "", SW_SHOW);
wait(6);
#=============================================================================================
# @STEP 5			Backup incremental
#=============================================================================================
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02100"();	#Open wizard
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02101"();	#Checking welcome screen
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02112"();	#Checking kind of backup --> incremental
if (match (kernel_version, "7.3.0") != 0 ||
	match (kernel_version, "7.2.5") != 0) {
	call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02103a"();	#with or without checkpoints
}
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02113"();	#Create/Select
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02114"();	#Parallel medium
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02115"();	#Single medium --> create
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02116"();	#Properties medium
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02117"();	#Copy medium
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02118"();	#Rename medium
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02119"();	#Delete medium
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02120"();	#Checking start backup - summary
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02121"();	#Perform backup - incremental
#FILL LOG
invoke_application (testdir & "Fill\\filllog.exe"," -d " & database &" -u dbadmin,secret -n 300", "", SW_SHOW); 
wait(6);
#=============================================================================================
# @STEP 5			Backup log - log to write.
#=============================================================================================
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02100"();	#Open wizard
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02101"();	#Checking welcome screen
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02125"();	#Checking kind of backup --> incremental
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02126"();	#Create/Select
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02127"();	#Single medium --> create
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02128"();	#Properties medium
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02129"();	#Copy medium
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02130"();	#Rename medium
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02131"();	#Delete medium
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02132"();	#Checking start backup - summary
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02133"();	#Perform backup - log
#=============================================================================================
# @STEP 6			Backup log - no log to write.
#=============================================================================================
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02100"();	#Open wizard
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02101"();	#Checking welcome screen
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02125"();	#Checking kind of backup --> incremental
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02134"();	#Create/Select
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02135"();	#Checking start backup - summary
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02136"();	#Perform backup - log
#Perform a - db_execute force savepoint - to free all log space
call_close "DBMGUI\Wizards\Backup\DBM2_Backup_02143_CommandLineStatement"();	
#FILL LOG
invoke_application (testdir & "Fill\\filllog.exe"," -d " & database &" -u dbadmin,secret -n 500", "", SW_SHOW); 
wait(6);
#=============================================================================================
# @STEP 7			Auto Log On/Off --> 'On'.
#=============================================================================================
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02100"();	#Open wizard
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02101"();	#Checking welcome screen
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02140"();	#Checking kind of backup --> AutoLog On/Off
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02141"();	#Medium for Backup - 'Next'
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02142"();	#Checking AutoLog - summary and 'On'
#=============================================================================================
# @STEP 8			Auto Log On/Off --> 'Off'.
#=============================================================================================
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02100"();	#Open wizard
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02101"();	#Checking welcome screen
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02140"();	#Checking kind of backup --> AutoLog On/Off
call_close "DBMGUI\Wizards\Backup\DBM2_FKT_02143"();	#Checking AutoLog - summary and 'Off'
#=============================================================================================
# @STEP 9			Close DBM GUI 2.
#=============================================================================================
call_close "DBMGUI\Main\Open_Close\DBM2_FKT_01001"();
#=============================================================================================
# @STEP 10			Closing GUI Maps.
#=============================================================================================
GUI_close_all();
