 		return "nav_" & rereplace(arguments.value, "[^0-9a-zA-Z]", "_", "all");
 	}
 	request.getRemoteClients=getRemoteClients;
+
+	// used for automated testing of lucee admin via testbox
+	if (structKeyExists(url, "testUrls") && url.testUrls){
+		setting showdebugoutput="false";
+		content reset="yes" type="application/json";
+		echo(adminUrls.toJson()); abort;
+	}
+
 </cfscript>
 
 <cfif (!structKeyExists(session, "password" & request.adminType))>


					isfavorite = application.adminfunctions.isfavorite(_action);
					li = '<li' & (isfavorite ? ' class="favorite"':'') & '><a '&(isActive?'id="sprite" class="menu_active"':'class="menu_inactive"')&' href="' & request.self & '?action=' &ListCompact( _action,'.') & '"> ' & stCld.label & '</a></li>';
					if (isfavorite)
					{
						favoriteLis &= '<li class="favorite"><a href="#request.self#?action=#_action#">#stNavi.label# - #stCld.label#</a></li>';

		strNav = strNav &'';
		hasChildren=hasChildren and len(subNav) GT 0;
		if (!hasChildren) {
			if (toBool(stNavi,"display")){
				strNav = strNav & '<li><a href="' & request.self & '?action=' & stNavi.action & '">' & stNavi.label & '</a></li>';
				ArrayAppend(adminUrls, request.self & '?action=' & stNavi.action);
			}
			//if (toBool(stNavi,"display"))strNav = strNav & '<div class="navtop"><a class="navtop" href="' & request.self & '?action=' & stNavi.action & '">' & stNavi.label & '</a></div>';
		}
		else {
