#=============================================================================================
# @TITLE			Tuning - Index Use
#
# @NUMBER			WDBM_FKT_02031
#
# @DESCRIPTION		Clicking the "Index Use" - link and checking the shown Complete
# @					table.
#
# @EXP_RESULT		The Complete table has shown up and the headline and the first row will be
# @					checked.
#
# @REQUIREMENTS		Test: WDBM_FKT_01000; WDBM_FKT_00100; WDBM_FKT_01010
#=============================================================================================
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);
}

function getLine() {
	auto line; 
	call_chain_get_attr ("line_no", 1, line);
	return (line);
}

Testname = "WDBM_FKT_02031";

static column_name_array_ok = 1;
static column_name_array[] = {"Schema Name","Table Name","Index Name","Type","Date","Used","Disabled","Bad"}; 
#=============================================================================================
# @STEP 1			Checking backup window.
#=============================================================================================
set_window(work_window, 1);
set_window (menu_window, 2);

web_link_click("Index Use");

set_window(work_window, 1);

if (obj_exists("1x1",0) == E_OK) {
	tl_step("Optimizer Statistics","0","has shown up correctly");
} else {
	tl_step("Optimizer Statistics","1","has not shown up correctly - TN: " & Testname & ", L: " & getLine());
}
#=============================================================================================
# @STEP 2			Checking table content.
#=============================================================================================
set_window(work_window, 1);

if (new_interface == "1") {
	web_obj_get_text("Information - CACHES - DB73","#1","#1",cell_value_1,"","",1);
} else {
	tbl_get_cell_data("Database/Servername", "#1", "#1", cell_value_1);
}

if ((trim(cell_value_1) == "Index Use" && version == "7.3.00") ||
	(trim(cell_value_1) == "Tuning - Index Use" && (version == "7.4.03" || version == "7.5.00" || version == "7.5.01" || version == "7.6.00"))) {
	
	tl_step("Table index - Index Use","0","correct");
	
	#set_window(work_window, 1);
	#if (new_interface == "1") {
	#	web_obj_get_text("Database Users", "#1", "#1", cell_value_2, "", "", 1);
	#} else {
	#	tbl_get_cell_data("1x1","#1","#2", cell_value_2);
	#}
	
	#if (trim(cell_value_2) == "Indicate search criteria and press 'Select'.") {
	#	tl_step("Comment text - Index Use","0","correct");
	#} else {
	#	tl_step("Comment text - Index Use","1","incorrect - TN: " & Testname & ", L: " & getLine());
	#}
	
	set_window(work_window, 1);
	
	if (obj_exists("Owner_1",0) == E_OK &&
		obj_exists("Table",0) == E_OK &&
		obj_exists("Index",0) == E_OK &&
		obj_exists("From_1",0) == E_OK &&
		obj_exists("From_2",0) == E_OK &&
		obj_exists("From_3",0) == E_OK &&
		obj_exists("From_4",0) == E_OK &&
		obj_exists("MaxRows",0) == E_OK &&
		obj_exists("Select",0) == E_OK) {
		
		tl_step ("Index Use - Object check","0","All objects are displayed");
	} else {
		tl_step ("Index Use - Object check","1","Not all objects are displayed - TN: " & Testname & ", L: " & getLine());
	}
#=============================================================================================
# @STEP 3			Clicking 'Select'.
#=============================================================================================
	set_window(work_window, 1);
	web_link_click("Select");
	set_window(work_window, 1);
	
	if (new_interface == "1") {
		web_obj_get_text("Information - CACHES - DB73","#1","#1",cell_value_3,"","",1);
	} else {
		tbl_get_cell_data("Database/Servername", "#1", "#1", cell_value_3);
	}
	
	if ((trim(cell_value_3) == "Index Use" && version == "7.3.00") ||
		(trim(cell_value_3) == "Tuning - Index Use" && (version == "7.4.03" || version == "7.5.00" || version == "7.5.01" || version == "7.6.00"))) {
	
		tl_step("Table index - Index Use - after 'Select'","0","correct");
		
		set_window (work_window, 1);
		#if (obj_exists("Owner",0) == E_OK) {
		if (obj_exists("1x1",0) == E_OK) {
			
			set_window (work_window, 1);
			#tbl_get_cols_count ("Owner", cols_count);
			tbl_get_cols_count ("1x1", cols_count);

			for (n=0;n<cols_count-1;n++) {
				
				#tbl_get_column_name ("Owner", "#"&(n+2), column_name);
				tbl_get_column_name ("1x1", "#"&(n+2), column_name);
						
				if (column_name != column_name_array[n]) {
					
					column_name_array_ok = 0;
				}
			}
			
			if (column_name_array_ok == 0) {
				tl_step("Table index - Index Use - checking table content - header","1","incorrect - TN: " & Testname & ", L: " & getLine());
			} else {
				tl_step("Table index - Index Use - checking table content - header","0","correct");
			}
#=============================================================================================
# @STEP 4			Clicking 'Back'.
#=============================================================================================
			set_window(work_window, 1);
			web_link_click("Back");
			set_window(work_window, 1);
			
			if (new_interface == "1") {
				web_obj_get_text("Information - CACHES - DB73","#1","#1",cell_value_4,"","",1);
			} else {
				tbl_get_cell_data("Database/Servername", "#1", "#1", cell_value_4);
			}
			
			if ((trim(cell_value_4) == "Index Use" && version == "7.3.00") ||
				(trim(cell_value_4) == "Tuning - Index Use" && (version == "7.4.03" || version == "7.5.00" || version == "7.5.01" || version == "7.6.00"))) {
				
				tl_step("Table index - Index Use - after 'Select' and 'Back'","0","correct");
#=============================================================================================
# @STEP 5			Clicking again 'Select'.
#=============================================================================================				
				set_window(work_window, 1);
				web_link_click("Select");
				set_window(work_window, 1);
				
				if (obj_exists("Enable",0) == E_OK &&
					obj_exists("Disable",0) == E_OK &&
					obj_exists("Delete",0) == E_OK &&
					obj_exists("Back", 0) == E_OK) {
					
					tl_step("Object check - Index Use - after 'Select', 'Back' and 'Select'","0","correct");
					
					set_window (work_window, 1);
					#tbl_get_rows_count ("Owner", rows_count);
					tbl_get_rows_count ("1x1", rows_count);
					
#					if (rows_count > 1) {
#						tbl_get_cell_data("1x1","#2","#3",cell_value);
#=============================================================================================
# @STEP 6			Selecting 1st column and setting to disabled.
#=============================================================================================
#						set_window (work_window, 1);
#						button_set("Item_3",ON);
#						web_link_click("Disable");
#						
#						set_window(work_window, 1);
#			
#						if (new_interface == "1") {
#							web_obj_get_text("Information - CACHES - DB73","#1","#1",cell_value_5,"","",1);
#						} else {
#							tbl_get_cell_data("Database/Servername", "#1", "#1", cell_value_5);
#						}
#						
#						if ((trim(cell_value_5) == "Index Use" && version == "7.3.00") ||
#							(trim(cell_value_5) == "Tuning - Index Use" && (version == "7.4.03" || version == "7.5.00" || version == "7.5.01" || version == "7.6.00"))) {
#
#							set_window(work_window, 1);
#							if (new_interface == "1") {
#								web_obj_get_text("Database Users", "#1", "#1", cell_value_6, "", "", 1);
#							} else {
#								tbl_get_cell_data("1x1","#1","#2", cell_value_6);
#							}
#							if (trim(cell_value_6) == "Index action successfully finished.") {
#							
#								tl_step("Comment text - Index Use - after index disabled","0","correct");
#=============================================================================================
# @STEP 7			Going back to table content and checking whether index was disabled.
#=============================================================================================								
#								set_window(work_window, 1);
#								web_link_click("Back");
#								set_window(work_window, 1);
#								web_link_click("Select");
#								
#								set_window(work_window, 1);
#								
#								for (n=0;n<cols_count-1;n++) {
#				
#									tbl_get_column_name ("Owner", "#"&(n+2), column_name);
#											
#									if (toupper(column_name) == "DISABLED") {
#										
#										column = (n + 2);
#										break;
#									}
#								}
#								
#								tbl_get_cell_data ("Owner", "#2", "#"&column, cell_value_7);
#								
#								if (trim(cell_value_7) == "YES") {
#									tl_step ("Index Use - disable index","0","Index was successfully disabled");
#=============================================================================================
# @STEP 8			Setting index back to enabled.
#=============================================================================================
#									set_window (work_window, 1);
#									button_set("Item_3",ON);
#									web_link_click("Enable");
#									
#									set_window(work_window, 1);
#			
#									if (new_interface == "1") {
#										web_obj_get_text("Information - CACHES - DB73","#1","#1",cell_value_8,"","",1);
#									} else {
#										tbl_get_cell_data("Database/Servername", "#1", "#1", cell_value_8);
#									}
#									
#									if ((trim(cell_value_8) == "Index Use" && version == "7.3.00") ||
#										(trim(cell_value_8) == "Tuning - Index Use" && (version == "7.4.03" || version == "7.5.00" || version == "7.5.01" || version == "7.6.00"))) {
#			
#										set_window(work_window, 1);
#										if (new_interface == "1") {
#											web_obj_get_text("Database Users", "#1", "#1", cell_value_9, "", "", 1);
#										} else {
#											tbl_get_cell_data("1x1","#1","#2", cell_value_9);
#										}
#										if (trim(cell_value_9) == "Index action successfully finished.") {
#										
#											tl_step("Comment text - Index Use - after index enabled","0","correct");
#										} else {
#											tl_step("Comment text - Index Use - after index enabled","1","incorrect - TN: " & Testname & ", L: " & getLine());
#										}
#									} else {
#										tl_step("Index Use - Header after index enabled incorrect","1","TN: " & Testname & ", L: " & getLine());
#									}									
#								} else {
#									tl_step ("Index Use - disable index","1","Index was not disabled - TN: " & Testname & ", L: " & getLine());
#								}
#							} else {
#								tl_step("Comment text - Index Use - after index disabled","1","incorrect - TN: " & Testname & ", L: " & getLine());
#							}
#						} else {
#							tl_step("Object check - Index Use - No indexes found","1","incorrect - TN: " & Testname & ", L: " & getLine());
#						}
#					} else {
#						tl_step("Object check - Index Use - No indexes found","1","incorrect - TN: " & Testname & ", L: " & getLine());
#					}
				} else {
					tl_step("Object check - Index Use - after 'Select', 'Back' and 'Select'","1","incorrect - TN: " & Testname & ", L: " & getLine());
				}
			} else {
				tl_step("Table index - Index Use - after 'Select' and 'Back'","1","incorrect - TN: " & Testname & ", L: " & getLine());
			}
		} else {
			tl_step("Table index - Index Use - checking table content","1","incorrect - TN: " & Testname & ", L: " & getLine());
		}
	} else {
		tl_step("Table index - Index Use - after 'Select'","1","incorrect - TN: " & Testname & ", L: " & getLine());
	}
} else {
	tl_step("Table index - Index Use","1","incorrect - TN: " & Testname & ", L: " & getLine());
}
