0001: /*
0002: * Copyright 2001 Sun Microsystems, Inc. All rights reserved.
0003: * PROPRIETARY/CONFIDENTIAL. Use of this product is subject to license terms.
0004: */
0005: package com.sun.portal.rewriter.engines.js.test;
0006:
0007: import com.sun.portal.rewriter.Rewriter;
0008: import com.sun.portal.rewriter.RewriterModule;
0009: import com.sun.portal.rewriter.RewriterPool;
0010: import com.sun.portal.rewriter.engines.LanguageConstants;
0011: import com.sun.portal.rewriter.rom.RuleSet;
0012: import com.sun.portal.rewriter.test.util.BasicTestCase;
0013: import com.sun.portal.rewriter.test.util.CreateRuleSet;
0014: import com.sun.portal.rewriter.test.util.JSWrapperHelper;
0015: import com.sun.portal.rewriter.util.Resource;
0016: import junit.framework.TestSuite;
0017:
0018: public class TestJSOWAPages extends BasicTestCase {
0019: public TestJSOWAPages(String aName) {
0020: super (aName);
0021: }//constuctor
0022:
0023: public void testVW_NavBar20_JS() throws Exception {
0024: String lInput = "//Copyright (c) 2000-2001 Microsoft Corporation. All rights reserved.\n"
0025: + "//<script>\n"
0026: + "\n"
0027: + "var g_winDocAll = window.document.all;\n"
0028: + "var g_iAddCount=0;\n"
0029: + "var g_iTabTopOffset = 38;\n"
0030: + "var g_fHasGottenFolders = false;\n"
0031: + "var g_rgAuthDomains = new Array();\n"
0032: + "var g_nFlybarHeight = 25;\n"
0033: + "var g_idFlyPopup = -1;\n"
0034: + "var g_nFontHeight=13;\n"
0035: + "var CTL_E_PERMISSIONDENIED = (1^0x800a0046)-1;\n"
0036: + "var FACILITY_WIN32_ERROR_ACCESS_DENIED = (1^0x80070005)+1;\n"
0037: + "var g_wndReminder = null;\n"
0038: + "var g_ctlReminder = null;\n"
0039: + "var g_nEnableNewMail = 0;\n"
0040: + "var g_fUnix = false;\n"
0041: + "\n"
0042: + "/*******Init Error String************/\n"
0043: + "g_szrgErrors = new Array();\n"
0044: + "g_szrgErrors[900] = L_errCommunicationfailure_ErrorMessage;\n"
0045: + "g_szrgErrors[401] = L_errLogonFailure_ErrorMessage;\n"
0046: + "g_szrgErrors[404] = L_ErrorItemNotFound_ErrorMessage;\n"
0047: + "g_szrgErrors[405] = L_idsFolderDuplicateNameError;\n"
0048: + "g_szrgErrors[403] = L_errAccessDenied_ErrorMessage;\n"
0049: + "g_szrgErrors[412] = L_errPreconditionfailure_ErrorMessage;\n"
0050: + "g_szrgErrors[500] = L_errInternalServerError_ErrorMessage;\n"
0051: + "g_szrgErrors[501] = L_errInternalServerError_ErrorMessage;\n"
0052: + "g_szrgErrors[502] = L_errBadGateway_ErrorMessage; //DAV return Bad Gateway.\n"
0053: + "// This error occurs when copying folders between private and public stores\n"
0054: + "g_szrgErrors[503] = L_errServiceNotAvailable_ErrorMessage;\n"
0055: + "g_szrgErrors[1001] = L_ErrorIllegalCharacter_Text;\n"
0056: + "var g_ctlNotify = null;\n"
0057: + "var g_oSound = null;\n"
0058: + "var g_oPopup = null;\n"
0059: + "\n"
0060: + "function objTree_OnFolderOperationComplete()\n"
0061: + "{\n"
0062: + " if(event != null && event.contentType == 1)\n"
0063: + " {\n"
0064: + " try\n"
0065: + " {\n"
0066: + " parent.viewer.RefreshMessageList(null); // force refresh\n"
0067: + " }\n"
0068: + " catch(e) { }\n"
0069: + " }\n"
0070: + "}\n"
0071: + "function objTree_onError()\n"
0072: + "{\n"
0073: + " f_HandleError(event.statusCode)\n"
0074: + "}\n"
0075: + "\n"
0076: + "function objTree_onReady()\n"
0077: + "{\n"
0078: + " g_iAddCount = 2;\n"
0079: + " if (g_fPublicOnly)\n"
0080: + " {\n"
0081: + " if (g_fPublicTierOn)\n"
0082: + " {\n"
0083: + " if (g_fPublicRoot)\n"
0084: + " objTree.addHierarchy(window.location, true, g_szPublicFoldersDN);\n"
0085: + " else\n"
0086: + " objTree.addHierarchy(window.location, true, null);\n"
0087: + " }\n"
0088: + " }\n"
0089: + " else\n"
0090: + " {\n"
0091: + " objTree.addHierarchy(g_szUserBase, true, g_szUserDisplayName);\n"
0092: + " var szPublicFolderUrl = g_szPublicFolderUrl;\n"
0093: + "\n"
0094: + " if (g_fPublicTierOn)\n"
0095: + " {\n"
0096: + " if (g_szPublicFolderUrl == \"\")\n"
0097: + " {\n"
0098: + " // We are going through a front-end so go after /public\n"
0099: + " // off the front-end host\n"
0100: + " szPublicFolderUrl = window.location.protocol + \"//\" + window.location.host + \"/public/\";\n"
0101: + " }\n"
0102: + " objTree.addHierarchy(szPublicFolderUrl, false, g_szPublicFoldersDN);\n"
0103: + " }\n"
0104: + " }\n"
0105: + " treeProgress.style.display = \"none\"\n"
0106: + " g_winDocAll['objTree'].style.height = \"100%\";\n"
0107: + "}\n"
0108: + "\n"
0109: + "function objTree_onSelectFolder()\n"
0110: + "{\n"
0111: + " event.cancelBubble = true;\n"
0112: + " event.returnValue = false;\n"
0113: + "\n"
0114: + " if(event)\n"
0115: + " {\n"
0116: + " if(event.isContext == true)\n"
0117: + " {\n"
0118: + " var node = objTree.selectedNode;\n"
0119: + " }\n"
0120: + " else\n"
0121: + " {\n"
0122: + " Navigate(event.url + \"?Cmd=contents\"+((event.isDeletedItems)?\"&allowShowDeleted=1\":\"\") );\n"
0123: + " }\n"
0124: + " }\n"
0125: + "}\n"
0126: + "function window.document.oncontextmenu()\n"
0127: + "{\n"
0128: + " if(null != event.returnValue)\n"
0129: + " {\n"
0130: + " if(\"object\" == typeof(event.returnValue))\n"
0131: + " {\n"
0132: + " idTreeMenu.menuShow(true,event.clientX, event.clientY+15);\n"
0133: + " }\n"
0134: + " }\n"
0135: + "}\n"
0136: + "\n"
0137: + "function ToggleTab(srcElementID)\n"
0138: + "{\n"
0139: + " event.cancelBubble = true;\n"
0140: + " event.returnValue = false;\n"
0141: + "\n"
0142: + " if (!g_fPublicOnly)\n"
0143: + " {\n"
0144: + " var tempEl;\n"
0145: + " var srcEl = g_winDocAll[srcElementID];\n"
0146: + "\n"
0147: + " if(srcEl.id == \"show_folders\")\n"
0148: + " {\n"
0149: + " if(g_iAddCount == 0)\n"
0150: + " {\n"
0151: + " g_iAddCount++;\n"
0152: + "\n"
0153: + " treeProgress.style.display = \"\";\n"
0154: + " g_nFontHeight = g_winDocAll.idLoading.offsetHeight;\n"
0155: + " objTree.addBehavior(g_szVirtualRoot + \"/CONTROLS/ctrl_Tree20.htc\");\n"
0156: + " }\n"
0157: + "\n"
0158: + " g_winDocAll['idOutbarpane'].parentElement.style.display=\"none\";\n"
0159: + " g_winDocAll['objTree'].style.display=\"\";\n"
0160: + " setDefaultView(\"1\");\n"
0161: + " }\n"
0162: + " if(srcEl.id == \"show_navbar\")\n"
0163: + " {\n"
0164: + " g_winDocAll['objTree'].style.display=\"none\";\n"
0165: + " g_winDocAll['idOutbarpane'].parentElement.style.display=\"\";\n"
0166: + " setDefaultView(\"0\");\n"
0167: + " }\n"
0168: + " }\n"
0169: + "}\n"
0170: + "\n"
0171: + "function DepressTab(objButton)\n"
0172: + "{\n"
0173: + " g_winDocAll['btnShowFolders'].style.borderStyle =\n"
0174: + " g_winDocAll['btnShowNavbar'].style.borderStyle = \"outset\";\n"
0175: + "\n"
0176: + " objButton.style.borderStyle = \"inset\";\n"
0177: + "}\n"
0178: + "\n"
0179: + "function window.onload()\n"
0180: + "{\n"
0181: + " if(!g_szUserBase)\n"
0182: + " {\n"
0183: + " return(false);\n"
0184: + " }\n"
0185: + "\n"
0186: + " var oStyleSheet = window.document.styleSheets(\"idNavbarStyle\");\n"
0187: + " var szFont = \"font-family:'\" + window.document.body.currentStyle.fontFamily + \"'\";\n"
0188: + " oStyleSheet.addRule( \".buttonNormal\", szFont );\n"
0189: + "\n"
0190: + " if (g_fPublicOnly)\n"
0191: + " {\n"
0192: + " treeProgress.style.display = \"\";\n"
0193: + " g_nFontHeight = g_winDocAll.idLoading.offsetHeight;\n"
0194: + "\n"
0195: + "\n"
0196: + " objTree.addBehavior(g_szVirtualRoot + \"/controls/ctrl_Tree20.htc\")\n"
0197: + " g_winDocAll['idOutbarpane'].parentElement.style.display=\"none\";\n"
0198: + " g_winDocAll[\"btnShowNavbar\"].disabled = true;\n"
0199: + " g_winDocAll['objTree'].style.display=\"\";\n"
0200: + " }\n"
0201: + " else\n"
0202: + " {\n"
0203: + " re = /Win[0-9]+|WinCE/i;\n"
0204: + " g_fUnix = !re.test( window.navigator.platform );\n"
0205: + " if( \"0\" != g_szEnableReminders )\n"
0206: + " {\n"
0207: + " g_ctlReminder = g_winDocAll['objReminder'];\n"
0208: + " if( null != g_ctlReminder )\n"
0209: + " {\n"
0210: + " g_ctlReminder.onchange = onReminders;\n"
0211: + " g_ctlReminder.enable = true;\n"
0212: + " }\n"
0213: + " }\n"
0214: + " g_nEnableNewMail = parseInt( g_szEnableNewMail, 10 );\n"
0215: + " if( 0 != g_nEnableNewMail )\n"
0216: + " {\n"
0217: + " g_ctlNotify = g_winDocAll['objNotify'];\n"
0218: + " if( null != g_ctlNotify )\n"
0219: + " {\n"
0220: + " g_ctlNotify.onchange = onNewMail;\n"
0221: + " g_ctlNotify.enable = true;\n"
0222: + "\n"
0223: + " try\n"
0224: + " {\n"
0225: + " g_oPopup = window.createPopup();\n"
0226: + " }\n"
0227: + " catch(e)\n"
0228: + " {\n"
0229: + " }\n"
0230: + " }\n"
0231: + " }\n"
0232: + " if (\"1\" == g_bShowFolders)\n"
0233: + " {\n"
0234: + " g_winDocAll[\"btnShowFolders\"].click();\n"
0235: + " }\n"
0236: + " else\n"
0237: + " {\n"
0238: + " g_winDocAll[\"btnShowNavbar\"].click();\n"
0239: + " }\n"
0240: + " }\n"
0241: + "}\n"
0242: + "\n"
0243: + "function Navigate(url)\n"
0244: + "{\n"
0245: + " if(parent != null && url != null)\n"
0246: + " {\n"
0247: + " if(parent.viewer != null)\n"
0248: + " {\n"
0249: + " parent.viewer.location = url;\n"
0250: + " }\n"
0251: + " }\n"
0252: + "}\n"
0253: + "\n"
0254: + "function slide_Tabs()\n"
0255: + "{\n"
0256: + " ToggleTab(event.srcElement.parentElement.id);\n"
0257: + "}\n"
0258: + "\n"
0259: + "function DoRenameCommand()\n"
0260: + "{\n"
0261: + " var objFolder = objTree.selectedNode;\n"
0262: + " var szName = objFolder.displayname;\n"
0263: + " var szURL = objFolder.url;\n"
0264: + "\n"
0265: + " var szNewName = prompt(L_RenameCurrentFolder_Text, szName);\n"
0266: + "\n"
0267: + " if(szNewName != null)\n"
0268: + " {\n"
0269: + " if (szNewName.length > 255)\n"
0270: + " szNewName = szNewName.slice(0, 255);\n"
0271: + "\n"
0272: + " objTree.renameFolder(szURL, szNewName);\n"
0273: + " }\n"
0274: + "}\n"
0275: + "\n"
0276: + "function DoMoveCopyCommand(mode)\n"
0277: + "{\n"
0278: + " var szDialog = g_szUserBase+\"?Cmd=dialog&template=dlg_movecopy\"\n"
0279: + " var szNewFolderDialog = g_szUserBase +\"?Cmd=dialog&template=dlg_newfolder\"\n"
0280: + " var rgParams = new Array();\n"
0281: + " rgParams[\"g_OpenerTreeCtrl\"] = objTree;\n"
0282: + " rgParams[\"g_CurrentFolderNode\"] = objTree.selectedNode;\n"
0283: + " rgParams[\"g_Location\"] = g_szUserBase;\n"
0284: + " rgParams[\"g_VirtualRoot\"] = g_szVirtualRoot;\n"
0285: + " rgParams[\"g_NewFolderDialogPath\"] = szNewFolderDialog;\n"
0286: + " rgParams[\"g_MoveCopyMode\"] = mode;\n"
0287: + "\n"
0288: + " var oStyle = g_winDocAll.idLoading.currentStyle;\n"
0289: + " var nFontHeight = g_nFontHeight - 3;\n"
0290: + " var szFont = \"FONT:\"+ oStyle.fontFamily + \";font-size:\" + nFontHeight + \";\";\n"
0291: + " var nWidth = 50 + 25 * nFontHeight;\n"
0292: + " var nHeight = 200 + 12 * nFontHeight;\n"
0293: + " var hWin = window.showModalDialog(szDialog, rgParams, szFont+\"dialogHeight:\"+nHeight+\"px;dialogWidth:\"+nWidth+\"px;status:no;resizable:yes;help:no;\")\n"
0294: + "}\n"
0295: + "\n"
0296: + "function DoNewFolderCommand()\n"
0297: + "{\n"
0298: + " //Verify that user has access to folder\n"
0299: + "\n"
0300: + " if(!f_Authenticate(objTree.selectedNode.url))\n"
0301: + " {\n"
0302: + " return(false)\n"
0303: + " }\n"
0304: + "\n"
0305: + " var szNewFolderDialog = g_szUserBase +\"?Cmd=dialog&template=dlg_newfolder\"\n"
0306: + " var rgParams = new Array();\n"
0307: + " rgParams[\"g_OpenerTreeCtrl\"] = objTree;\n"
0308: + " rgParams[\"g_CurrentFolderNode\"] = objTree.selectedNode;\n"
0309: + " rgParams[\"g_Location\"] = g_szUserBase;\n"
0310: + " rgParams[\"g_VirtualRoot\"] = g_szVirtualRoot;\n"
0311: + "\n"
0312: + " var oStyle = g_winDocAll.idLoading.currentStyle;\n"
0313: + " var nFontHeight = g_nFontHeight - 3;\n"
0314: + " var szFont = \"FONT:\"+ oStyle.fontFamily + \";font-size:\" + nFontHeight + \"px;\";\n"
0315: + " var nWidth = 50 + 25 * nFontHeight;\n"
0316: + " var nHeight = 220 + 12 * nFontHeight;\n"
0317: + " var hWin = window.showModalDialog(szNewFolderDialog, rgParams, szFont+\"dialogHeight:\"+nHeight+\"px;dialogWidth:\"+nWidth+\"px;status:no;resizable:yes;help:no;\")\n"
0318: + "}\n"
0319: + "\n"
0320: + "function f_Authenticate(szURL)\n"
0321: + "{\n"
0322: + " var szServerName = f_getServerName(szURL);\n"
0323: + " var iStatus = 0;\n"
0324: + " var bretval = true;\n"
0325: + " var szDocumentDomain = window.document.domain\n"
0326: + " if(szDocumentDomain.toLowerCase() != szServerName.toLowerCase())\n"
0327: + " {\n"
0328: + " //Check the cache to see if already authenticated\n"
0329: + " if(null == g_rgAuthDomains[szServerName])\n"
0330: + " {\n"
0331: + " /*** Send an options to the server to cause authentication to the new domain */\n"
0332: + " var objXMLHTTP = new ActiveXObject(\"Microsoft.XMLHTTP\");\n"
0333: + " objXMLHTTP.open( \"OPTIONS\", szURL,false);\n"
0334: + " objXMLHTTP.send();\n"
0335: + "\n"
0336: + " if(200 != objXMLHTTP.status)\n"
0337: + " {\n"
0338: + "\n"
0339: + " f_HandleError(iStatus);\n"
0340: + " bretval = false;\n"
0341: + " }\n"
0342: + " else\n"
0343: + " {\n"
0344: + " //Set empty string to server name. We only use this array as a look up.\n"
0345: + "\n"
0346: + " g_rgAuthDomains[szServerName] = \"\";\n"
0347: + " bretval = true;\n"
0348: + " }\n"
0349: + " }\n"
0350: + " else\n"
0351: + " {\n"
0352: + " bretval = true;\n"
0353: + " }\n"
0354: + " }\n"
0355: + " return(bretval)\n"
0356: + "}\n"
0357: + "\n"
0358: + "function f_getServerName(szURL)\n"
0359: + "{\n"
0360: + " f_getServerName.re.lastIndex=0;\n"
0361: + " var rgVals = f_getServerName.re.exec(szURL)\n"
0362: + " return(rgVals[1])\n"
0363: + "}\n"
0364: + "f_getServerName.re = new RegExp(\"^https?://([^/]+)\",\"i\")\n"
0365: + "\n"
0366: + "function f_HandleError(num)\n"
0367: + "{\n"
0368: + " if(g_szrgErrors[num])\n"
0369: + " {\n"
0370: + " alert(g_szrgErrors[num]);\n"
0371: + " }\n"
0372: + " else if(num == CTL_E_PERMISSIONDENIED || num == FACILITY_WIN32_ERROR_ACCESS_DENIED)\n"
0373: + " {\n"
0374: + " alert(L_errCrossDomainAccessDenied_ErrorMessage)\n"
0375: + " }\n"
0376: + " else\n"
0377: + " {\n"
0378: + " alert(L_idsUnknownError_Text + \"\\r\\n\" + num);\n"
0379: + " }\n"
0380: + "\n"
0381: + "}\n"
0382: + "\n"
0383: + "function MenuSelect(item)\n"
0384: + "{\n"
0385: + " switch (item)\n"
0386: + " {\n"
0387: + " case \"Delete\":\n"
0388: + " var node = objTree.selectedNode;\n"
0389: + " var szName = node.displayname;\n"
0390: + " var szURL = node.url;\n"
0391: + " if(confirm(L_ConfirmDelete_Text))\n"
0392: + " {\n"
0393: + " objTree.deleteFolder(szURL);\n"
0394: + " }\n"
0395: + " break;\n"
0396: + " case \"Rename\":\n"
0397: + " DoRenameCommand();\n"
0398: + " break;\n"
0399: + " case \"Copy\":\n"
0400: + " DoMoveCopyCommand(\"Copy\");\n"
0401: + " break;\n"
0402: + " case \"Move\":\n"
0403: + " DoMoveCopyCommand(\"Move\");\n"
0404: + " break;\n"
0405: + " case \"New Folder\":\n"
0406: + " DoNewFolderCommand();\n"
0407: + " break;\n"
0408: + " case \"Refresh\":\n"
0409: + " var objFolder = objTree.selectedNode\n"
0410: + " if(null != objFolder)\n"
0411: + " {\n"
0412: + " objTree.refreshFolder(objFolder.url);\n"
0413: + " }\n"
0414: + " break;\n"
0415: + " case \"Open\":\n"
0416: + " var node = objTree.selectedNode;\n"
0417: + " if(node)\n"
0418: + " {\n"
0419: + " Navigate(node.url + \"?Cmd=contents\" +((node.isDeletedItems)?\"&allowShowDeleted=1\":\"\") );\n"
0420: + " }\n"
0421: + " break;\n"
0422: + " case \"OpenNewWindow\":\n"
0423: + " var node = objTree.selectedNode;\n"
0424: + " var szURL = node.url + \"?Cmd=contents\" +((node.isDeletedItems)?\"&allowShowDeleted=1\":\"\");\n"
0425: + " var windowName = new String(Math.round(Math.random() * 100000));\n"
0426: + " var hWin = window.open(szURL,windowName,\"toolbar=1,location=1,directories=1,status=1,menubar=1,scrollbars=1,resizable=1\")\n"
0427: + " break;\n"
0428: + " }\n"
0429: + " return (false);\n"
0430: + "}\n"
0431: + "\n"
0432: + "var m_szReminders;\n"
0433: + "\n"
0434: + "function ShowReminders(szXml)\n"
0435: + "{\n"
0436: + " var i = 0;\n"
0437: + " var fRc = false;\n"
0438: + " try\n"
0439: + " {\n"
0440: + " if( (null != g_wndReminder) && (!g_wndReminder.closed) )\n"
0441: + " {\n"
0442: + " var x = g_wndReminder.dialogLeft;\n"
0443: + " if( 0 > window.screenLeft )\n"
0444: + " {\n"
0445: + " g_wndReminder.close();\n"
0446: + " g_wndReminder=null;\n"
0447: + " }\n"
0448: + " else\n"
0449: + " {\n"
0450: + " g_wndReminder.updateData(szXml);\n"
0451: + " fRc = true;\n"
0452: + " }\n"
0453: + " }\n"
0454: + " if( true === fRc )\n"
0455: + " {\n"
0456: + " return;\n"
0457: + " }\n"
0458: + " }\n"
0459: + " catch(e)\n"
0460: + " {\n"
0461: + " g_wndReminder=null;\n"
0462: + " }\n"
0463: + "\n"
0464: + " var rgParams= new Array();\n"
0465: + " rgParams[\"xmlData\"] = szXml;\n"
0466: + " rgParams[\"callback\"] = onSnooze;\n"
0467: + " rgParams[\"Sound\"] = (\"2\" === g_szEnableReminders);\n"
0468: + " rgParams[\"WavFile\"] = g_szReminderWav;\n"
0469: + " rgParams[\"Snooze\"] = Snooze;\n"
0470: + " rgParams[\"Dismiss\"] = Dismiss;\n"
0471: + "\n"
0472: + " var obj = g_winDocAll(\"show_navbar\").firstChild;\n"
0473: + " var nFontHeight = obj.firstChild.offsetHeight - 4;\n"
0474: + " var oStyle = obj.currentStyle;\n"
0475: + " var szFont = \"FONT:\"+ oStyle.fontFamily + \";font-size:\" + nFontHeight + \";\";\n"
0476: + " var nWidth = 110 + 35 * nFontHeight;\n"
0477: + " var nHeight = 120 + 16 * nFontHeight;\n"
0478: + " g_wndReminder = window.showModelessDialog(g_szUserBase+\"?Cmd=dialog&template=dlg_reminders\", rgParams,szFont+\"dialogHeight:\"+nHeight+\"px;dialogWidth:\"+nWidth+\"px;status:no;resizable:yes;help:no;\");\n"
0479: + "\n"
0480: + "}\n"
0481: + "\n"
0482: + "function UpdateReminder()\n"
0483: + "{\n"
0484: + " ShowReminders( m_szReminders );\n"
0485: + "}\n"
0486: + "\n"
0487: + "function closeReminder()\n"
0488: + "{\n"
0489: + " if( g_wndReminder && (!g_wndReminder.closed) )\n"
0490: + " {\n"
0491: + " try\n"
0492: + " {\n"
0493: + " g_wndReminder.close();\n"
0494: + " }\n"
0495: + " catch(e)\n"
0496: + " {\n"
0497: + " }\n"
0498: + " }\n"
0499: + " g_wndReminder = null;\n"
0500: + "}\n"
0501: + "\n"
0502: + "// When new data is available from reminder polling control.\n"
0503: + "function onReminders()\n"
0504: + "{\n"
0505: + " var i = event.count;\n"
0506: + " m_szReminders = event.szXml;\n"
0507: + " if( 0 == i )\n"
0508: + " {\n"
0509: + " closeReminder();\n"
0510: + " }\n"
0511: + " else\n"
0512: + " {\n"
0513: + " window.setTimeout( UpdateReminder, 100 );\n"
0514: + " }\n"
0515: + "}\n"
0516: + "\n"
0517: + "// Called when item is dismissed from reminder dialog.\n"
0518: + "function onSnooze()\n"
0519: + "{\n"
0520: + " window.setTimeout( cb_onSnooze, 100 );\n"
0521: + "}\n"
0522: + "\n"
0523: + "function cb_onSnooze()\n"
0524: + "{\n"
0525: + " if( g_ctlReminder )\n"
0526: + " {\n"
0527: + " g_ctlReminder.poll();\n"
0528: + " }\n"
0529: + "}\n"
0530: + "\n"
0531: + "function Snooze( rgItems, iMinutes)\n"
0532: + "{\n"
0533: + " var re = /\\/[^/]*$/;\n"
0534: + " var szProp;\n"
0535: + "\n"
0536: + " if( 0 > iMinutes )\n"
0537: + " {\n"
0538: + " var dtReminder = new Date();\n"
0539: + " dtReminder.setMinutes( dtReminder.getMinutes() + -iMinutes );\n"
0540: + "\n"
0541: + " iMinutes = toISOTimeString(dtReminder);\n"
0542: + " szProp = 'remindernexttime';\n"
0543: + " }\n"
0544: + " else\n"
0545: + " {\n"
0546: + " iMinutes = iMinutes * 60;\n"
0547: + " szProp = 'reminderoffset';\n"
0548: + " }\n"
0549: + "\n"
0550: + " var fRc = true;\n"
0551: + " while( rgItems.length )\n"
0552: + " {\n"
0553: + " var rgTodo = new Array();\n"
0554: + " var szURL = rgItems[0].apptURL.replace( re, \"\" );\n"
0555: + "\n"
0556: + " var xml = '<?xml version=\"1.0\"?\\><a:propertyupdate xmlns:a=\"DAV:\"><a:set><a:prop>' +\n"
0557: + " '<d:' + szProp + ' xmlns:d=\"urn:schemas:calendar:\">'+ iMinutes + '</d:' + szProp + '>' +\n"
0558: + " '</a:prop></a:set><a:target>';\n"
0559: + " var j = 0;\n"
0560: + " var i;\n"
0561: + " for( i = 0; i < rgItems.length; i++ )\n"
0562: + " {\n"
0563: + " var szTemp = rgItems[i].apptURL.replace( re, \"\" );\n"
0564: + " if( szTemp === szURL )\n"
0565: + " {\n"
0566: + " xml+= '<a:href>'+rgItems[i].apptURL + '</a:href>';\n"
0567: + " }\n"
0568: + " else\n"
0569: + " {\n"
0570: + " rgTodo[j++] = rgItems[i];\n"
0571: + " }\n"
0572: + " }\n"
0573: + " xml += '</a:target></a:propertyupdate>';\n"
0574: + "\n"
0575: + " fRc = batchModify( szURL, xml );\n"
0576: + " if( !fRc )\n"
0577: + " {\n"
0578: + " break;\n"
0579: + " }\n"
0580: + " rgItems = rgTodo;\n"
0581: + " }\n"
0582: + " return fRc;\n"
0583: + "}\n"
0584: + "\n"
0585: + "function Dismiss(rgItems)\n"
0586: + "{\n"
0587: + " var re = /\\/[^/]*$/;\n"
0588: + "\n"
0589: + " var fRc = true;\n"
0590: + " while( rgItems.length )\n"
0591: + " {\n"
0592: + " var rgTodo = new Array();\n"
0593: + " var szURL = rgItems[0].apptURL.replace( re, \"\" );\n"
0594: + "\n"
0595: + " var xml = '<?xml version=\"1.0\"?\\><a:propertyupdate xmlns:a=\"DAV:\"><a:set><a:prop>' +\n"
0596: + " '<d:remindernexttime xmlns:d=\"urn:schemas:calendar:\">4501-01-01T00:00:00.000Z</d:remindernexttime>' +\n"
0597: + " '</a:prop></a:set><a:target>';\n"
0598: + " var j = 0;\n"
0599: + " var i;\n"
0600: + " for( i = 0; i < rgItems.length; i++ )\n"
0601: + " {\n"
0602: + " var szTemp = rgItems[i].apptURL.replace( re, \"\" );\n"
0603: + " if( szTemp === szURL )\n"
0604: + " {\n"
0605: + " xml+= '<a:href>'+rgItems[i].apptURL + '</a:href>';\n"
0606: + " }\n"
0607: + " else\n"
0608: + " {\n"
0609: + " rgTodo[j++] = rgItems[i];\n"
0610: + " }\n"
0611: + " }\n"
0612: + " xml += '</a:target></a:propertyupdate>';\n"
0613: + "\n"
0614: + " fRc = batchModify( szURL, xml );\n"
0615: + " if( !fRc )\n"
0616: + " {\n"
0617: + " break;\n"
0618: + " }\n"
0619: + "\n"
0620: + " xml = '<?xml version=\"1.0\"?\\><a:propertyupdate xmlns:a=\"DAV:\"><a:remove><a:prop>' +\n"
0621: + " '<d:reminderoffset xmlns:d=\"urn:schemas:calendar:\" />' +\n"
0622: + " '</a:prop></a:remove><a:target>';\n"
0623: + " j = 0;\n"
0624: + " for( i = 0; i < rgItems.length; i++ )\n"
0625: + " {\n"
0626: + " var szTemp = rgItems[i].apptURL.replace( re, \"\" );\n"
0627: + " if( szTemp === szURL && \"0\" === rgItems[i].type )\n"
0628: + " {\n"
0629: + " xml+= '<a:href>'+rgItems[i].apptURL + '</a:href>';\n"
0630: + " j++;\n"
0631: + " }\n"
0632: + " }\n"
0633: + " if( 0 < j )\n"
0634: + " {\n"
0635: + " xml += '</a:target></a:propertyupdate>';\n"
0636: + " fRc = batchModify( szURL, xml );\n"
0637: + " }\n"
0638: + " if( !fRc )\n"
0639: + " {\n"
0640: + " break;\n"
0641: + " }\n"
0642: + " rgItems = rgTodo;\n"
0643: + " }\n"
0644: + " return( fRc );\n"
0645: + "}\n"
0646: + "\n"
0647: + "function batchModify( szURL, szXML )\n"
0648: + "{\n"
0649: + " var fSuccess = false;\n"
0650: + " try\n"
0651: + " {\n"
0652: + " var Req = new ActiveXObject(\"Microsoft.XMLHTTP\");\n"
0653: + " Req.open(\"BPROPPATCH\", szURL, false);\n"
0654: + " Req.setRequestHeader(\"Content-Type\",\"text/xml\");\n"
0655: + " Req.setRequestHeader(\"Translate\",\"f\");\n"
0656: + " Req.setRequestHeader(\"Brief\",\"t\" );\n"
0657: + "\n"
0658: + " Req.send(szXML);\n"
0659: + " fSuccess = true;\n"
0660: + " }\n"
0661: + " catch(e)\n"
0662: + " {\n"
0663: + " }\n"
0664: + "\n"
0665: + " if( fSuccess && ((200 > Req.status) || (300 <= Req.status)) )\n"
0666: + " {\n"
0667: + " // if the error was not \"Item not found\"\n"
0668: + " if( 404 != Req.status )\n"
0669: + " {\n"
0670: + " fSuccess = false;\n"
0671: + " }\n"
0672: + " }\n"
0673: + " return fSuccess;\n"
0674: + "}\n"
0675: + "\n"
0676: + "function toISOTimeString(dtDate)\n"
0677: + "{\n"
0678: + " var sTime = dtDate.getUTCFullYear() + \"-00-00T00:00:00Z\";\n"
0679: + "\n"
0680: + " var i = dtDate.getUTCMonth()+1;\n"
0681: + " sTime = sTime.substr(0,(10 > i) ? 6 : 5) + i + sTime.substr(7);\n"
0682: + "\n"
0683: + " i = dtDate.getUTCDate();\n"
0684: + " sTime = sTime.substr(0,(10 > i) ? 9 : 8) + i + sTime.substr(10);\n"
0685: + "\n"
0686: + " i = dtDate.getUTCHours();\n"
0687: + " sTime = sTime.substr(0,(10 > i) ? 12 : 11) + i + sTime.substr(13);\n"
0688: + "\n"
0689: + " i = dtDate.getUTCMinutes();\n"
0690: + " sTime = sTime.substr(0,(10 > i) ? 15 : 14) + i + sTime.substr(16);\n"
0691: + " return sTime;\n"
0692: + "}\n"
0693: + "\n"
0694: + "// When new mail is detected in the inbox.\n"
0695: + "function onNewMail()\n"
0696: + "{\n"
0697: + " if( 2 <= g_nEnableNewMail )\n"
0698: + " {\n"
0699: + " PlaySound();\n"
0700: + " }\n"
0701: + " if( 0 == (1 & g_nEnableNewMail) )\n"
0702: + " {\n"
0703: + " return;\n"
0704: + " }\n"
0705: + "\n"
0706: + " var obj = g_winDocAll['idNewMail'];\n"
0707: + " if( null != obj )\n"
0708: + " {\n"
0709: + " obj.style.display=\"\";\n"
0710: + " for( var i = 0; i < 3; i++ )\n"
0711: + " {\n"
0712: + " var n = obj.scrollHeight - obj.clientHeight;\n"
0713: + " if( 0 < n )\n"
0714: + " {\n"
0715: + " obj.style.height = (i+4)+\"em\";\n"
0716: + " }\n"
0717: + " else\n"
0718: + " {\n"
0719: + " break;\n"
0720: + " }\n"
0721: + " }\n"
0722: + " }\n"
0723: + " AnimateNotify();\n"
0724: + " if( 1 < g_iAddCount )\n"
0725: + " {\n"
0726: + " objTree.updateFolderCount( g_ctlNotify.folder+\"/\" );\n"
0727: + " }\n"
0728: + "}\n"
0729: + "\n"
0730: + "function PlaySound()\n"
0731: + "{\n"
0732: + " if( null == g_oSound )\n"
0733: + " {\n"
0734: + " if( !g_fUnix )\n"
0735: + " {\n"
0736: + " g_oSound = window.document.all['idSound'];\n"
0737: + " }\n"
0738: + " else\n"
0739: + " {\n"
0740: + " var oSnd = document.createElement(\"BGSOUND\");\n"
0741: + " oSnd.id = \"idSound\";\n"
0742: + " oSnd.src = g_szNewMailWav;\n"
0743: + " oSnd.LOOP=1;\n"
0744: + " g_oSound = document.body.insertBefore( oSnd, null );\n"
0745: + " }\n"
0746: + " }\n"
0747: + " if( null != g_oSound )\n"
0748: + " {\n"
0749: + " if( !g_fUnix )\n"
0750: + " {\n"
0751: + " g_oSound.beginElement();\n"
0752: + " }\n"
0753: + " else\n"
0754: + " {\n"
0755: + " g_oSound.src = g_oSound.src;\n"
0756: + " }\n"
0757: + " }\n"
0758: + "}\n"
0759: + "\n"
0760: + "function flyInit()\n"
0761: + "{\n"
0762: + " flyMove.expand = 0;\n"
0763: + " flyMove.flyY = window.screen.height;\n"
0764: + " flyMove.flyX = window.screen.width;\n"
0765: + "}\n"
0766: + "\n"
0767: + "function flyMove()\n"
0768: + "{\n"
0769: + " flyMove.expand += 2;\n"
0770: + " flyMove.flyY -= 2;\n"
0771: + " g_oPopup.show(flyMove.flyX-flyMove.expand, flyMove.flyY, flyMove.expand, flyMove.expand);\n"
0772: + " var oPopupBody = g_oPopup.document.body;\n"
0773: + " if (oPopupBody.clientWidth >= oPopupBody.scrollWidth && oPopupBody.clientHeight >= oPopupBody.scrollHeight)\n"
0774: + " {\n"
0775: + " window.clearInterval(g_idFlyPopup);\n"
0776: + " g_idFlyPopup = -1;\n"
0777: + " window.setTimeout( 'closePopup()', 15000 );\n"
0778: + " }\n"
0779: + "}\n"
0780: + "flyMove.expand = 0;\n"
0781: + "flyMove.flyY = 0;\n"
0782: + "flyMove.flyX = 0;\n"
0783: + "\n"
0784: + "function AnimateNotify()\n"
0785: + "{\n"
0786: + " if( null == g_oPopup )\n"
0787: + " {\n"
0788: + " return;\n"
0789: + " }\n"
0790: + " var oPopupBody = g_oPopup.document.body;\n"
0791: + "\n"
0792: + " var obj = g_winDocAll['idNewMail'].firstChild;\n"
0793: + " var szHTML = \"<TABLE height=100% width=100% cellpadding=5 cellspacing=5 style=\\\"FONT-SIZE:smaller\\\"><TR><TD align=middle >\"+\n"
0794: + " \"<A HREF=\\\"#\\\" HIDEFOCUS>\"+obj.title+\"</A><BR><IMG id='nbImage' style='padding-top:4px;CURSOR:hand;BORDER:0 none;' src='' alt=''><DIV></DIV>\"+\n"
0795: + " \"</TD></TR></TABLE>\"\n"
0796: + "\n"
0797: + " oPopupBody.innerHTML = szHTML;\n"
0798: + " var obj = g_winDocAll['inbox'];\n"
0799: + " if( null != obj )\n"
0800: + " {\n"
0801: + " obj = obj.firstChild;\n"
0802: + " var oImg = oPopupBody.all['nbImage'];\n"
0803: + " oImg.alt = obj.alt;\n"
0804: + " oImg.src = obj.src;\n"
0805: + " obj = obj.parentElement.nextSibling;\n"
0806: + " oImg.nextSibling.innerText = obj.innerText;\n"
0807: + " }\n"
0808: + " oPopupBody.style.fontSize = document.body.currentStyle.fontSize;\n"
0809: + " oPopupBody.style.backgroundColor='infobackground';\n"
0810: + " oPopupBody.style.cursor=\"hand\";\n"
0811: + " oPopupBody.style.color = \"infotext\";\n"
0812: + " oPopupBody.style.borderWidth='3px';\n"
0813: + " oPopupBody.style.borderStyle='window-inset';\n"
0814: + " oPopupBody.style.borderColor='activeborder';\n"
0815: + " oPopupBody.onclick = ShowInbox;\n"
0816: + " flyInit();\n"
0817: + " g_idFlyPopup = window.setInterval(flyMove,10);\n"
0818: + "}\n"
0819: + "\n"
0820: + "function closePopup()\n"
0821: + "{\n"
0822: + " if( null != g_oPopup )\n"
0823: + " {\n"
0824: + " g_oPopup.hide();\n"
0825: + " }\n"
0826: + "}\n"
0827: + "\n"
0828: + "function ShowInbox()\n"
0829: + "{\n"
0830: + " window.top.focus();\n"
0831: + " Navigate( g_ctlNotify.folder + \"/?Cmd=contents\" );\n"
0832: + " if( -1 != g_idFlyPopup )\n"
0833: + " {\n"
0834: + " window.clearInterval(g_idFlyPopup);\n"
0835: + " g_idFlyPopup = -1\n"
0836: + " }\n"
0837: + " closePopup();\n"
0838: + " var obj = g_winDocAll['idNewMail'];\n"
0839: + " if( null != obj )\n"
0840: + " {\n"
0841: + " obj.style.display=\"none\";\n"
0842: + " }\n"
0843: + "}\n"
0844: + "\n"
0845: + "function newOptions( szVal )\n"
0846: + "{\n"
0847: + " var rgVals = szVal.split(',');\n"
0848: + " if( g_szEnableReminders != rgVals[0] )\n"
0849: + " {\n"
0850: + " g_szEnableReminders = rgVals[0];\n"
0851: + " switch( g_szEnableReminders )\n"
0852: + " {\n"
0853: + " default:\n"
0854: + " case \"0\":\n"
0855: + " if( g_ctlReminder )\n"
0856: + " {\n"
0857: + " g_ctlReminder.enable=false;\n"
0858: + " }\n"
0859: + " closeReminder();\n"
0860: + " break;\n"
0861: + " case \"1\":\n"
0862: + " case \"2\":\n"
0863: + " closeReminder();\n"
0864: + " g_ctlReminder = g_winDocAll['objReminder'];\n"
0865: + " if( null != g_ctlReminder )\n"
0866: + " {\n"
0867: + " g_ctlReminder.onchange = onReminders;\n"
0868: + " g_ctlReminder.enable = true;\n"
0869: + " }\n"
0870: + " break;\n"
0871: + " }\n"
0872: + " }\n"
0873: + "\n"
0874: + " if( g_szEnableNewMail != rgVals[1] )\n"
0875: + " {\n"
0876: + " g_ctlNotify = g_winDocAll['objNotify'];\n"
0877: + " if( null == g_ctlNotify )\n"
0878: + " {\n"
0879: + " return;\n"
0880: + " }\n"
0881: + " if( \"0\" == rgVals[1] )\n"
0882: + " {\n"
0883: + " g_ctlNotify.enable = false;\n"
0884: + " }\n"
0885: + " else\n"
0886: + " {\n"
0887: + " if( 0 == g_nEnableNewMail )\n"
0888: + " {\n"
0889: + " g_ctlNotify.enable = true;\n"
0890: + " g_ctlNotify.onchange = onNewMail;\n"
0891: + " }\n"
0892: + " }\n"
0893: + " g_szEnableNewMail = rgVals[1];\n"
0894: + " g_nEnableNewMail = parseInt( g_szEnableNewMail, 10 );\n"
0895: + " }\n"
0896: + "}\n"
0897: + "\n"
0898: + "function onopened( szFolder )\n"
0899: + "{\n"
0900: + " var szInbox = \"\";\n"
0901: + " if( g_szInboxFolder.length )\n"
0902: + " {\n"
0903: + " szInbox = g_szInboxFolder.substr(1);\n"
0904: + " if( szFolder === szInbox )\n"
0905: + " {\n"
0906: + " closePopup();\n"
0907: + " var obj = g_winDocAll['idNewMail'];\n"
0908: + " if( null != obj )\n"
0909: + " {\n"
0910: + " obj.style.display=\"none\";\n"
0911: + " }\n"
0912: + " }\n"
0913: + " }\n"
0914: + " return szInbox;\n"
0915: + "}\n"
0916: + "\n"
0917: + "function setDefaultView(sValue)\n"
0918: + "{\n"
0919: + " if (g_bShowFolders == sValue)\n"
0920: + " {\n"
0921: + " return;\n"
0922: + " }\n"
0923: + " g_bShowFolders = sValue;\n"
0924: + "\n"
0925: + " var szXML = \"<?xml version=\\\"1.0\\\" ?>\" +\n"
0926: + " \"<D:propertyupdate xmlns:D=\\\"DAV:\\\" xmlns:a=\\\"http://schemas.microsoft.com/exchange/\\\">\" +\n"
0927: + " \"<D:set><D:prop><a:webclientshowhierarchy>\" + sValue + \"</a:webclientshowhierarchy></D:prop></D:set>\" +\n"
0928: + " \"</D:propertyupdate>\";\n"
0929: + " var objXMLHttpRequest= new ActiveXObject(\"Microsoft.XMLHTTP\");\n"
0930: + " objXMLHttpRequest.open(\"PROPPATCH\", g_szUserBase, true);\n"
0931: + " objXMLHttpRequest.setRequestHeader(\"Content-Type\",\"text/xml\");\n"
0932: + " objXMLHttpRequest.setRequestHeader(\"Depth\", \"0\");\n"
0933: + "\n"
0934: + " objXMLHttpRequest.send(szXML);\n"
0935: + " var testVar='abc.html';\n" + "}\n";
0936:
0937: String lExpectation = "//Copyright (c) 2000-2001 Microsoft Corporation. All rights reserved.\n"
0938: + "//<script>\n"
0939: + "\n"
0940: + "var g_winDocAll = window.document.all;\n"
0941: + "var g_iAddCount=0;\n"
0942: + "var g_iTabTopOffset = 38;\n"
0943: + "var g_fHasGottenFolders = false;\n"
0944: + "var g_rgAuthDomains = new Array();\n"
0945: + "var g_nFlybarHeight = 25;\n"
0946: + "var g_idFlyPopup = -1;\n"
0947: + "var g_nFontHeight=13;\n"
0948: + "var CTL_E_PERMISSIONDENIED = (1^0x800a0046)-1;\n"
0949: + "var FACILITY_WIN32_ERROR_ACCESS_DENIED = (1^0x80070005)+1;\n"
0950: + "var g_wndReminder = null;\n"
0951: + "var g_ctlReminder = null;\n"
0952: + "var g_nEnableNewMail = 0;\n"
0953: + "var g_fUnix = false;\n"
0954: + "\n"
0955: + "/*******Init Error String************/\n"
0956: + "g_szrgErrors = new Array();\n"
0957: + "g_szrgErrors[900] = L_errCommunicationfailure_ErrorMessage;\n"
0958: + "g_szrgErrors[401] = L_errLogonFailure_ErrorMessage;\n"
0959: + "g_szrgErrors[404] = L_ErrorItemNotFound_ErrorMessage;\n"
0960: + "g_szrgErrors[405] = L_idsFolderDuplicateNameError;\n"
0961: + "g_szrgErrors[403] = L_errAccessDenied_ErrorMessage;\n"
0962: + "g_szrgErrors[412] = L_errPreconditionfailure_ErrorMessage;\n"
0963: + "g_szrgErrors[500] = L_errInternalServerError_ErrorMessage;\n"
0964: + "g_szrgErrors[501] = L_errInternalServerError_ErrorMessage;\n"
0965: + "g_szrgErrors[502] = L_errBadGateway_ErrorMessage; //DAV return Bad Gateway.\n"
0966: + "// This error occurs when copying folders between private and public stores\n"
0967: + "g_szrgErrors[503] = L_errServiceNotAvailable_ErrorMessage;\n"
0968: + "g_szrgErrors[1001] = L_ErrorIllegalCharacter_Text;\n"
0969: + "var g_ctlNotify = null;\n"
0970: + "var g_oSound = null;\n"
0971: + "var g_oPopup = null;\n"
0972: + "\n"
0973: + "function objTree_OnFolderOperationComplete()\n"
0974: + "{\n"
0975: + " if(event != null && event.contentType == 1)\n"
0976: + " {\n"
0977: + " try\n"
0978: + " {\n"
0979: + " parent.viewer.RefreshMessageList(null); // force refresh\n"
0980: + " }\n"
0981: + " catch(e) { }\n"
0982: + " }\n"
0983: + "}\n"
0984: + "function objTree_onError()\n"
0985: + "{\n"
0986: + " f_HandleError(event.statusCode)\n"
0987: + "}\n"
0988: + "\n"
0989: + "function objTree_onReady()\n"
0990: + "{\n"
0991: + " g_iAddCount = 2;\n"
0992: + " if (g_fPublicOnly)\n"
0993: + " {\n"
0994: + " if (g_fPublicTierOn)\n"
0995: + " {\n"
0996: + " if (g_fPublicRoot)\n"
0997: + " objTree.addHierarchy(window.location, true, g_szPublicFoldersDN);\n"
0998: + " else\n"
0999: + " objTree.addHierarchy(window.location, true, null);\n"
1000: + " }\n"
1001: + " }\n"
1002: + " else\n"
1003: + " {\n"
1004: + " objTree.addHierarchy(g_szUserBase, true, g_szUserDisplayName);\n"
1005: + " var szPublicFolderUrl = g_szPublicFolderUrl;\n"
1006: + "\n"
1007: + " if (g_fPublicTierOn)\n"
1008: + " {\n"
1009: + " if (g_szPublicFolderUrl == \"\")\n"
1010: + " {\n"
1011: + " // We are going through a front-end so go after /public\n"
1012: + " // off the front-end host\n"
1013: + " szPublicFolderUrl = window.location.protocol + \"//\" + window.location.host + \"/public/\";\n"
1014: + " }\n"
1015: + " objTree.addHierarchy(szPublicFolderUrl, false, g_szPublicFoldersDN);\n"
1016: + " }\n"
1017: + " }\n"
1018: + " treeProgress.style.display = \"none\"\n"
1019: + " g_winDocAll['objTree'].style.height = \"100%\";\n"
1020: + "}\n"
1021: + "\n"
1022: + "function objTree_onSelectFolder()\n"
1023: + "{\n"
1024: + " event.cancelBubble = true;\n"
1025: + " event.returnValue = false;\n"
1026: + "\n"
1027: + " if(event)\n"
1028: + " {\n"
1029: + " if(event.isContext == true)\n"
1030: + " {\n"
1031: + " var node = objTree.selectedNode;\n"
1032: + " }\n"
1033: + " else\n"
1034: + " {\n"
1035: + " Navigate(event.url + \"?Cmd=contents\"+((event.isDeletedItems)?\"&allowShowDeleted=1\":\"\") );\n"
1036: + " }\n"
1037: + " }\n"
1038: + "}\n"
1039: + "function window.document.oncontextmenu()\n"
1040: + "{\n"
1041: + " if(null != event.returnValue)\n"
1042: + " {\n"
1043: + " if(\"object\" == typeof(event.returnValue))\n"
1044: + " {\n"
1045: + " idTreeMenu.menuShow(true,event.clientX, event.clientY+15);\n"
1046: + " }\n"
1047: + " }\n"
1048: + "}\n"
1049: + "\n"
1050: + "function ToggleTab(srcElementID)\n"
1051: + "{\n"
1052: + " event.cancelBubble = true;\n"
1053: + " event.returnValue = false;\n"
1054: + "\n"
1055: + " if (!g_fPublicOnly)\n"
1056: + " {\n"
1057: + " var tempEl;\n"
1058: + " var srcEl = g_winDocAll[srcElementID];\n"
1059: + "\n"
1060: + " if(srcEl.id == \"show_folders\")\n"
1061: + " {\n"
1062: + " if(g_iAddCount == 0)\n"
1063: + " {\n"
1064: + " g_iAddCount++;\n"
1065: + "\n"
1066: + " treeProgress.style.display = \"\";\n"
1067: + " g_nFontHeight = g_winDocAll.idLoading.offsetHeight;\n"
1068: + " objTree.addBehavior(g_szVirtualRoot + \"/CONTROLS/ctrl_Tree20.htc\");\n"
1069: + " }\n"
1070: + "\n"
1071: + " g_winDocAll['idOutbarpane'].parentElement.style.display=\"none\";\n"
1072: + " g_winDocAll['objTree'].style.display=\"\";\n"
1073: + " setDefaultView(\"1\");\n"
1074: + " }\n"
1075: + " if(srcEl.id == \"show_navbar\")\n"
1076: + " {\n"
1077: + " g_winDocAll['objTree'].style.display=\"none\";\n"
1078: + " g_winDocAll['idOutbarpane'].parentElement.style.display=\"\";\n"
1079: + " setDefaultView(\"0\");\n"
1080: + " }\n"
1081: + " }\n"
1082: + "}\n"
1083: + "\n"
1084: + "function DepressTab(objButton)\n"
1085: + "{\n"
1086: + " g_winDocAll['btnShowFolders'].style.borderStyle =\n"
1087: + " g_winDocAll['btnShowNavbar'].style.borderStyle = \"outset\";\n"
1088: + "\n"
1089: + " objButton.style.borderStyle = \"inset\";\n"
1090: + "}\n"
1091: + "\n"
1092: + "function window.onload()\n"
1093: + "{\n"
1094: + " if(!g_szUserBase)\n"
1095: + " {\n"
1096: + " return(false);\n"
1097: + " }\n"
1098: + "\n"
1099: + " var oStyleSheet = window.document.styleSheets(\"idNavbarStyle\");\n"
1100: + " var szFont = \"font-family:'\" + window.document.body.currentStyle.fontFamily + \"'\";\n"
1101: + " oStyleSheet.addRule( \".buttonNormal\", szFont );\n"
1102: + "\n"
1103: + " if (g_fPublicOnly)\n"
1104: + " {\n"
1105: + " treeProgress.style.display = \"\";\n"
1106: + " g_nFontHeight = g_winDocAll.idLoading.offsetHeight;\n"
1107: + "\n"
1108: + "\n"
1109: + " objTree.addBehavior(g_szVirtualRoot + \"/controls/ctrl_Tree20.htc\")\n"
1110: + " g_winDocAll['idOutbarpane'].parentElement.style.display=\"none\";\n"
1111: + " g_winDocAll[\"btnShowNavbar\"].disabled = true;\n"
1112: + " g_winDocAll['objTree'].style.display=\"\";\n"
1113: + " }\n"
1114: + " else\n"
1115: + " {\n"
1116: + " re = /Win[0-9]+|WinCE/i;\n"
1117: + " g_fUnix = !re.test( window.navigator.platform );\n"
1118: + " if( \"0\" != g_szEnableReminders )\n"
1119: + " {\n"
1120: + " g_ctlReminder = g_winDocAll['objReminder'];\n"
1121: + " if( null != g_ctlReminder )\n"
1122: + " {\n"
1123: + " g_ctlReminder.onchange = onReminders;\n"
1124: + " g_ctlReminder.enable = true;\n"
1125: + " }\n"
1126: + " }\n"
1127: + " g_nEnableNewMail = parseInt( g_szEnableNewMail, 10 );\n"
1128: + " if( 0 != g_nEnableNewMail )\n"
1129: + " {\n"
1130: + " g_ctlNotify = g_winDocAll['objNotify'];\n"
1131: + " if( null != g_ctlNotify )\n"
1132: + " {\n"
1133: + " g_ctlNotify.onchange = onNewMail;\n"
1134: + " g_ctlNotify.enable = true;\n"
1135: + "\n"
1136: + " try\n"
1137: + " {\n"
1138: + " g_oPopup = window.createPopup();\n"
1139: + " }\n"
1140: + " catch(e)\n"
1141: + " {\n"
1142: + " }\n"
1143: + " }\n"
1144: + " }\n"
1145: + " if (\"1\" == g_bShowFolders)\n"
1146: + " {\n"
1147: + " g_winDocAll[\"btnShowFolders\"].click();\n"
1148: + " }\n"
1149: + " else\n"
1150: + " {\n"
1151: + " g_winDocAll[\"btnShowNavbar\"].click();\n"
1152: + " }\n"
1153: + " }\n"
1154: + "}\n"
1155: + "\n"
1156: + "function Navigate(url)\n"
1157: + "{\n"
1158: + " if(parent != null && url != null)\n"
1159: + " {\n"
1160: + " if(parent.viewer != null)\n"
1161: + " {\n"
1162: + " parent.viewer.location = url;\n"
1163: + " }\n"
1164: + " }\n"
1165: + "}\n"
1166: + "\n"
1167: + "function slide_Tabs()\n"
1168: + "{\n"
1169: + " ToggleTab(event.srcElement.parentElement.id);\n"
1170: + "}\n"
1171: + "\n"
1172: + "function DoRenameCommand()\n"
1173: + "{\n"
1174: + " var objFolder = objTree.selectedNode;\n"
1175: + " var szName = objFolder.displayname;\n"
1176: + " var szURL = objFolder.url;\n"
1177: + "\n"
1178: + " var szNewName = prompt(L_RenameCurrentFolder_Text, szName);\n"
1179: + "\n"
1180: + " if(szNewName != null)\n"
1181: + " {\n"
1182: + " if (szNewName.length > 255)\n"
1183: + " szNewName = szNewName.slice(0, 255);\n"
1184: + "\n"
1185: + " objTree.renameFolder(szURL, szNewName);\n"
1186: + " }\n"
1187: + "}\n"
1188: + "\n"
1189: + "function DoMoveCopyCommand(mode)\n"
1190: + "{\n"
1191: + " var szDialog = g_szUserBase+\"?Cmd=dialog&template=dlg_movecopy\"\n"
1192: + " var szNewFolderDialog = g_szUserBase +\"?Cmd=dialog&template=dlg_newfolder\"\n"
1193: + " var rgParams = new Array();\n"
1194: + " rgParams[\"g_OpenerTreeCtrl\"] = objTree;\n"
1195: + " rgParams[\"g_CurrentFolderNode\"] = objTree.selectedNode;\n"
1196: + " rgParams[\"g_Location\"] = g_szUserBase;\n"
1197: + " rgParams[\"g_VirtualRoot\"] = g_szVirtualRoot;\n"
1198: + " rgParams[\"g_NewFolderDialogPath\"] = szNewFolderDialog;\n"
1199: + " rgParams[\"g_MoveCopyMode\"] = mode;\n"
1200: + "\n"
1201: + " var oStyle = g_winDocAll.idLoading.currentStyle;\n"
1202: + " var nFontHeight = g_nFontHeight - 3;\n"
1203: + " var szFont = \"FONT:\"+ oStyle.fontFamily + \";font-size:\" + nFontHeight + \";\";\n"
1204: + " var nWidth = 50 + 25 * nFontHeight;\n"
1205: + " var nHeight = 200 + 12 * nFontHeight;\n"
1206: + " var hWin = window.showModalDialog(szDialog, rgParams, szFont+\"dialogHeight:\"+nHeight+\"px;dialogWidth:\"+nWidth+\"px;status:no;resizable:yes;help:no;\")\n"
1207: + "}\n"
1208: + "\n"
1209: + "function DoNewFolderCommand()\n"
1210: + "{\n"
1211: + " //Verify that user has access to folder\n"
1212: + "\n"
1213: + " if(!f_Authenticate(objTree.selectedNode.url))\n"
1214: + " {\n"
1215: + " return(false)\n"
1216: + " }\n"
1217: + "\n"
1218: + " var szNewFolderDialog = g_szUserBase +\"?Cmd=dialog&template=dlg_newfolder\"\n"
1219: + " var rgParams = new Array();\n"
1220: + " rgParams[\"g_OpenerTreeCtrl\"] = objTree;\n"
1221: + " rgParams[\"g_CurrentFolderNode\"] = objTree.selectedNode;\n"
1222: + " rgParams[\"g_Location\"] = g_szUserBase;\n"
1223: + " rgParams[\"g_VirtualRoot\"] = g_szVirtualRoot;\n"
1224: + "\n"
1225: + " var oStyle = g_winDocAll.idLoading.currentStyle;\n"
1226: + " var nFontHeight = g_nFontHeight - 3;\n"
1227: + " var szFont = \"FONT:\"+ oStyle.fontFamily + \";font-size:\" + nFontHeight + \"px;\";\n"
1228: + " var nWidth = 50 + 25 * nFontHeight;\n"
1229: + " var nHeight = 220 + 12 * nFontHeight;\n"
1230: + " var hWin = window.showModalDialog(szNewFolderDialog, rgParams, szFont+\"dialogHeight:\"+nHeight+\"px;dialogWidth:\"+nWidth+\"px;status:no;resizable:yes;help:no;\")\n"
1231: + "}\n"
1232: + "\n"
1233: + "function f_Authenticate(szURL)\n"
1234: + "{\n"
1235: + " var szServerName = f_getServerName(szURL);\n"
1236: + " var iStatus = 0;\n"
1237: + " var bretval = true;\n"
1238: + " var szDocumentDomain = window.document.domain\n"
1239: + " if(szDocumentDomain.toLowerCase() != szServerName.toLowerCase())\n"
1240: + " {\n"
1241: + " //Check the cache to see if already authenticated\n"
1242: + " if(null == g_rgAuthDomains[szServerName])\n"
1243: + " {\n"
1244: + " /*** Send an options to the server to cause authentication to the new domain */\n"
1245: + " var objXMLHTTP = new ActiveXObject(\"Microsoft.XMLHTTP\");\n"
1246: + " objXMLHTTP.open( \"OPTIONS\", szURL,false);\n"
1247: + " objXMLHTTP.send();\n"
1248: + "\n"
1249: + " if(200 != objXMLHTTP.status)\n"
1250: + " {\n"
1251: + "\n"
1252: + " f_HandleError(iStatus);\n"
1253: + " bretval = false;\n"
1254: + " }\n"
1255: + " else\n"
1256: + " {\n"
1257: + " //Set empty string to server name. We only use this array as a look up.\n"
1258: + "\n"
1259: + " g_rgAuthDomains[szServerName] = \"\";\n"
1260: + " bretval = true;\n"
1261: + " }\n"
1262: + " }\n"
1263: + " else\n"
1264: + " {\n"
1265: + " bretval = true;\n"
1266: + " }\n"
1267: + " }\n"
1268: + " return(bretval)\n"
1269: + "}\n"
1270: + "\n"
1271: + "function f_getServerName(szURL)\n"
1272: + "{\n"
1273: + " f_getServerName.re.lastIndex=0;\n"
1274: + " var rgVals = f_getServerName.re.exec(szURL)\n"
1275: + " return(rgVals[1])\n"
1276: + "}\n"
1277: + "f_getServerName.re = new RegExp(\"^https?://([^/]+)\",\"i\")\n"
1278: + "\n"
1279: + "function f_HandleError(num)\n"
1280: + "{\n"
1281: + " if(g_szrgErrors[num])\n"
1282: + " {\n"
1283: + " alert(g_szrgErrors[num]);\n"
1284: + " }\n"
1285: + " else if(num == CTL_E_PERMISSIONDENIED || num == FACILITY_WIN32_ERROR_ACCESS_DENIED)\n"
1286: + " {\n"
1287: + " alert(L_errCrossDomainAccessDenied_ErrorMessage)\n"
1288: + " }\n"
1289: + " else\n"
1290: + " {\n"
1291: + " alert(L_idsUnknownError_Text + \"\\r\\n\" + num);\n"
1292: + " }\n"
1293: + "\n"
1294: + "}\n"
1295: + "\n"
1296: + "function MenuSelect(item)\n"
1297: + "{\n"
1298: + " switch (item)\n"
1299: + " {\n"
1300: + " case \"Delete\":\n"
1301: + " var node = objTree.selectedNode;\n"
1302: + " var szName = node.displayname;\n"
1303: + " var szURL = node.url;\n"
1304: + " if(confirm(L_ConfirmDelete_Text))\n"
1305: + " {\n"
1306: + " objTree.deleteFolder(szURL);\n"
1307: + " }\n"
1308: + " break;\n"
1309: + " case \"Rename\":\n"
1310: + " DoRenameCommand();\n"
1311: + " break;\n"
1312: + " case \"Copy\":\n"
1313: + " DoMoveCopyCommand(\"Copy\");\n"
1314: + " break;\n"
1315: + " case \"Move\":\n"
1316: + " DoMoveCopyCommand(\"Move\");\n"
1317: + " break;\n"
1318: + " case \"New Folder\":\n"
1319: + " DoNewFolderCommand();\n"
1320: + " break;\n"
1321: + " case \"Refresh\":\n"
1322: + " var objFolder = objTree.selectedNode\n"
1323: + " if(null != objFolder)\n"
1324: + " {\n"
1325: + " objTree.refreshFolder(objFolder.url);\n"
1326: + " }\n"
1327: + " break;\n"
1328: + " case \"Open\":\n"
1329: + " var node = objTree.selectedNode;\n"
1330: + " if(node)\n"
1331: + " {\n"
1332: + " Navigate(node.url + \"?Cmd=contents\" +((node.isDeletedItems)?\"&allowShowDeleted=1\":\"\") );\n"
1333: + " }\n"
1334: + " break;\n"
1335: + " case \"OpenNewWindow\":\n"
1336: + " var node = objTree.selectedNode;\n"
1337: + " var szURL = node.url + \"?Cmd=contents\" +((node.isDeletedItems)?\"&allowShowDeleted=1\":\"\");\n"
1338: + " var windowName = new String(Math.round(Math.random() * 100000));\n"
1339: + " var hWin = window.open(szURL,windowName,\"toolbar=1,location=1,directories=1,status=1,menubar=1,scrollbars=1,resizable=1\")\n"
1340: + " break;\n"
1341: + " }\n"
1342: + " return (false);\n"
1343: + "}\n"
1344: + "\n"
1345: + "var m_szReminders;\n"
1346: + "\n"
1347: + "function ShowReminders(szXml)\n"
1348: + "{\n"
1349: + " var i = 0;\n"
1350: + " var fRc = false;\n"
1351: + " try\n"
1352: + " {\n"
1353: + " if( (null != g_wndReminder) && (!g_wndReminder.closed) )\n"
1354: + " {\n"
1355: + " var x = g_wndReminder.dialogLeft;\n"
1356: + " if( 0 > window.screenLeft )\n"
1357: + " {\n"
1358: + " g_wndReminder.close();\n"
1359: + " g_wndReminder=null;\n"
1360: + " }\n"
1361: + " else\n"
1362: + " {\n"
1363: + " g_wndReminder.updateData(szXml);\n"
1364: + " fRc = true;\n"
1365: + " }\n"
1366: + " }\n"
1367: + " if( true === fRc )\n"
1368: + " {\n"
1369: + " return;\n"
1370: + " }\n"
1371: + " }\n"
1372: + " catch(e)\n"
1373: + " {\n"
1374: + " g_wndReminder=null;\n"
1375: + " }\n"
1376: + "\n"
1377: + " var rgParams= new Array();\n"
1378: + " rgParams[\"xmlData\"] = szXml;\n"
1379: + " rgParams[\"callback\"] = onSnooze;\n"
1380: + " rgParams[\"Sound\"] = (\"2\" === g_szEnableReminders);\n"
1381: + " rgParams[\"WavFile\"] = g_szReminderWav;\n"
1382: + " rgParams[\"Snooze\"] = Snooze;\n"
1383: + " rgParams[\"Dismiss\"] = Dismiss;\n"
1384: + "\n"
1385: + " var obj = g_winDocAll(\"show_navbar\").firstChild;\n"
1386: + " var nFontHeight = obj.firstChild.offsetHeight - 4;\n"
1387: + " var oStyle = obj.currentStyle;\n"
1388: + " var szFont = \"FONT:\"+ oStyle.fontFamily + \";font-size:\" + nFontHeight + \";\";\n"
1389: + " var nWidth = 110 + 35 * nFontHeight;\n"
1390: + " var nHeight = 120 + 16 * nFontHeight;\n"
1391: + " g_wndReminder = window.showModelessDialog(g_szUserBase+\"?Cmd=dialog&template=dlg_reminders\", rgParams,szFont+\"dialogHeight:\"+nHeight+\"px;dialogWidth:\"+nWidth+\"px;status:no;resizable:yes;help:no;\");\n"
1392: + "\n"
1393: + "}\n"
1394: + "\n"
1395: + "function UpdateReminder()\n"
1396: + "{\n"
1397: + " ShowReminders( m_szReminders );\n"
1398: + "}\n"
1399: + "\n"
1400: + "function closeReminder()\n"
1401: + "{\n"
1402: + " if( g_wndReminder && (!g_wndReminder.closed) )\n"
1403: + " {\n"
1404: + " try\n"
1405: + " {\n"
1406: + " g_wndReminder.close();\n"
1407: + " }\n"
1408: + " catch(e)\n"
1409: + " {\n"
1410: + " }\n"
1411: + " }\n"
1412: + " g_wndReminder = null;\n"
1413: + "}\n"
1414: + "\n"
1415: + "// When new data is available from reminder polling control.\n"
1416: + "function onReminders()\n"
1417: + "{\n"
1418: + " var i = event.count;\n"
1419: + " m_szReminders = event.szXml;\n"
1420: + " if( 0 == i )\n"
1421: + " {\n"
1422: + " closeReminder();\n"
1423: + " }\n"
1424: + " else\n"
1425: + " {\n"
1426: + " window.setTimeout( UpdateReminder, 100 );\n"
1427: + " }\n"
1428: + "}\n"
1429: + "\n"
1430: + "// Called when item is dismissed from reminder dialog.\n"
1431: + "function onSnooze()\n"
1432: + "{\n"
1433: + " window.setTimeout( cb_onSnooze, 100 );\n"
1434: + "}\n"
1435: + "\n"
1436: + "function cb_onSnooze()\n"
1437: + "{\n"
1438: + " if( g_ctlReminder )\n"
1439: + " {\n"
1440: + " g_ctlReminder.poll();\n"
1441: + " }\n"
1442: + "}\n"
1443: + "\n"
1444: + "function Snooze( rgItems, iMinutes)\n"
1445: + "{\n"
1446: + " var re = /\\/[^/]*$/;\n"
1447: + " var szProp;\n"
1448: + "\n"
1449: + " if( 0 > iMinutes )\n"
1450: + " {\n"
1451: + " var dtReminder = new Date();\n"
1452: + " dtReminder.setMinutes( dtReminder.getMinutes() + -iMinutes );\n"
1453: + "\n"
1454: + " iMinutes = toISOTimeString(dtReminder);\n"
1455: + " szProp = 'remindernexttime';\n"
1456: + " }\n"
1457: + " else\n"
1458: + " {\n"
1459: + " iMinutes = iMinutes * 60;\n"
1460: + " szProp = 'reminderoffset';\n"
1461: + " }\n"
1462: + "\n"
1463: + " var fRc = true;\n"
1464: + " while( rgItems.length )\n"
1465: + " {\n"
1466: + " var rgTodo = new Array();\n"
1467: + " var szURL = rgItems[0].apptURL.replace( re, \"\" );\n"
1468: + "\n"
1469: + " var xml = '<?xml version=\"1.0\"?\\><a:propertyupdate xmlns:a=\"DAV:\"><a:set><a:prop>' +\n"
1470: + " '<d:' + szProp + ' xmlns:d=\"urn:schemas:calendar:\">'+ iMinutes + '</d:' + szProp + '>' +\n"
1471: + " '</a:prop></a:set><a:target>';\n"
1472: + " var j = 0;\n"
1473: + " var i;\n"
1474: + " for( i = 0; i < rgItems.length; i++ )\n"
1475: + " {\n"
1476: + " var szTemp = rgItems[i].apptURL.replace( re, \"\" );\n"
1477: + " if( szTemp === szURL )\n"
1478: + " {\n"
1479: + " xml+= '<a:href>'+rgItems[i].apptURL + '</a:href>';\n"
1480: + " }\n"
1481: + " else\n"
1482: + " {\n"
1483: + " rgTodo[j++] = rgItems[i];\n"
1484: + " }\n"
1485: + " }\n"
1486: + " xml += '</a:target></a:propertyupdate>';\n"
1487: + "\n"
1488: + " fRc = batchModify( szURL, xml );\n"
1489: + " if( !fRc )\n"
1490: + " {\n"
1491: + " break;\n"
1492: + " }\n"
1493: + " rgItems = rgTodo;\n"
1494: + " }\n"
1495: + " return fRc;\n"
1496: + "}\n"
1497: + "\n"
1498: + "function Dismiss(rgItems)\n"
1499: + "{\n"
1500: + " var re = /\\/[^/]*$/;\n"
1501: + "\n"
1502: + " var fRc = true;\n"
1503: + " while( rgItems.length )\n"
1504: + " {\n"
1505: + " var rgTodo = new Array();\n"
1506: + " var szURL = rgItems[0].apptURL.replace( re, \"\" );\n"
1507: + "\n"
1508: + " var xml = '<?xml version=\"1.0\"?\\><a:propertyupdate xmlns:a=\"DAV:\"><a:set><a:prop>' +\n"
1509: + " '<d:remindernexttime xmlns:d=\"urn:schemas:calendar:\">4501-01-01T00:00:00.000Z</d:remindernexttime>' +\n"
1510: + " '</a:prop></a:set><a:target>';\n"
1511: + " var j = 0;\n"
1512: + " var i;\n"
1513: + " for( i = 0; i < rgItems.length; i++ )\n"
1514: + " {\n"
1515: + " var szTemp = rgItems[i].apptURL.replace( re, \"\" );\n"
1516: + " if( szTemp === szURL )\n"
1517: + " {\n"
1518: + " xml+= '<a:href>'+rgItems[i].apptURL + '</a:href>';\n"
1519: + " }\n"
1520: + " else\n"
1521: + " {\n"
1522: + " rgTodo[j++] = rgItems[i];\n"
1523: + " }\n"
1524: + " }\n"
1525: + " xml += '</a:target></a:propertyupdate>';\n"
1526: + "\n"
1527: + " fRc = batchModify( szURL, xml );\n"
1528: + " if( !fRc )\n"
1529: + " {\n"
1530: + " break;\n"
1531: + " }\n"
1532: + "\n"
1533: + " xml = '<?xml version=\"1.0\"?\\><a:propertyupdate xmlns:a=\"DAV:\"><a:remove><a:prop>' +\n"
1534: + " '<d:reminderoffset xmlns:d=\"urn:schemas:calendar:\" />' +\n"
1535: + " '</a:prop></a:remove><a:target>';\n"
1536: + " j = 0;\n"
1537: + " for( i = 0; i < rgItems.length; i++ )\n"
1538: + " {\n"
1539: + " var szTemp = rgItems[i].apptURL.replace( re, \"\" );\n"
1540: + " if( szTemp === szURL && \"0\" === rgItems[i].type )\n"
1541: + " {\n"
1542: + " xml+= '<a:href>'+rgItems[i].apptURL + '</a:href>';\n"
1543: + " j++;\n"
1544: + " }\n"
1545: + " }\n"
1546: + " if( 0 < j )\n"
1547: + " {\n"
1548: + " xml += '</a:target></a:propertyupdate>';\n"
1549: + " fRc = batchModify( szURL, xml );\n"
1550: + " }\n"
1551: + " if( !fRc )\n"
1552: + " {\n"
1553: + " break;\n"
1554: + " }\n"
1555: + " rgItems = rgTodo;\n"
1556: + " }\n"
1557: + " return( fRc );\n"
1558: + "}\n"
1559: + "\n"
1560: + "function batchModify( szURL, szXML )\n"
1561: + "{\n"
1562: + " var fSuccess = false;\n"
1563: + " try\n"
1564: + " {\n"
1565: + " var Req = new ActiveXObject(\"Microsoft.XMLHTTP\");\n"
1566: + " Req.open(\"BPROPPATCH\", szURL, false);\n"
1567: + " Req.setRequestHeader(\"Content-Type\",\"text/xml\");\n"
1568: + " Req.setRequestHeader(\"Translate\",\"f\");\n"
1569: + " Req.setRequestHeader(\"Brief\",\"t\" );\n"
1570: + "\n"
1571: + " Req.send(szXML);\n"
1572: + " fSuccess = true;\n"
1573: + " }\n"
1574: + " catch(e)\n"
1575: + " {\n"
1576: + " }\n"
1577: + "\n"
1578: + " if( fSuccess && ((200 > Req.status) || (300 <= Req.status)) )\n"
1579: + " {\n"
1580: + " // if the error was not \"Item not found\"\n"
1581: + " if( 404 != Req.status )\n"
1582: + " {\n"
1583: + " fSuccess = false;\n"
1584: + " }\n"
1585: + " }\n"
1586: + " return fSuccess;\n"
1587: + "}\n"
1588: + "\n"
1589: + "function toISOTimeString(dtDate)\n"
1590: + "{\n"
1591: + " var sTime = dtDate.getUTCFullYear() + \"-00-00T00:00:00Z\";\n"
1592: + "\n"
1593: + " var i = dtDate.getUTCMonth()+1;\n"
1594: + " sTime = sTime.substr(0,(10 > i) ? 6 : 5) + i + sTime.substr(7);\n"
1595: + "\n"
1596: + " i = dtDate.getUTCDate();\n"
1597: + " sTime = sTime.substr(0,(10 > i) ? 9 : 8) + i + sTime.substr(10);\n"
1598: + "\n"
1599: + " i = dtDate.getUTCHours();\n"
1600: + " sTime = sTime.substr(0,(10 > i) ? 12 : 11) + i + sTime.substr(13);\n"
1601: + "\n"
1602: + " i = dtDate.getUTCMinutes();\n"
1603: + " sTime = sTime.substr(0,(10 > i) ? 15 : 14) + i + sTime.substr(16);\n"
1604: + " return sTime;\n"
1605: + "}\n"
1606: + "\n"
1607: + "// When new mail is detected in the inbox.\n"
1608: + "function onNewMail()\n"
1609: + "{\n"
1610: + " if( 2 <= g_nEnableNewMail )\n"
1611: + " {\n"
1612: + " PlaySound();\n"
1613: + " }\n"
1614: + " if( 0 == (1 & g_nEnableNewMail) )\n"
1615: + " {\n"
1616: + " return;\n"
1617: + " }\n"
1618: + "\n"
1619: + " var obj = g_winDocAll['idNewMail'];\n"
1620: + " if( null != obj )\n"
1621: + " {\n"
1622: + " obj.style.display=\"\";\n"
1623: + " for( var i = 0; i < 3; i++ )\n"
1624: + " {\n"
1625: + " var n = obj.scrollHeight - obj.clientHeight;\n"
1626: + " if( 0 < n )\n"
1627: + " {\n"
1628: + " obj.style.height = (i+4)+\"em\";\n"
1629: + " }\n"
1630: + " else\n"
1631: + " {\n"
1632: + " break;\n"
1633: + " }\n"
1634: + " }\n"
1635: + " }\n"
1636: + " AnimateNotify();\n"
1637: + " if( 1 < g_iAddCount )\n"
1638: + " {\n"
1639: + " objTree.updateFolderCount( g_ctlNotify.folder+\"/\" );\n"
1640: + " }\n"
1641: + "}\n"
1642: + "\n"
1643: + "function PlaySound()\n"
1644: + "{\n"
1645: + " if( null == g_oSound )\n"
1646: + " {\n"
1647: + " if( !g_fUnix )\n"
1648: + " {\n"
1649: + " g_oSound = window.document.all['idSound'];\n"
1650: + " }\n"
1651: + " else\n"
1652: + " {\n"
1653: + " var oSnd = document.createElement(\"BGSOUND\");\n"
1654: + " oSnd.id = \"idSound\";\n"
1655: + " oSnd.src = g_szNewMailWav;\n"
1656: + " oSnd.LOOP=1;\n"
1657: + " g_oSound = document.body.insertBefore( oSnd, null );\n"
1658: + " }\n"
1659: + " }\n"
1660: + " if( null != g_oSound )\n"
1661: + " {\n"
1662: + " if( !g_fUnix )\n"
1663: + " {\n"
1664: + " g_oSound.beginElement();\n"
1665: + " }\n"
1666: + " else\n"
1667: + " {\n"
1668: + " g_oSound.src = g_oSound.src;\n"
1669: + " }\n"
1670: + " }\n"
1671: + "}\n"
1672: + "\n"
1673: + "function flyInit()\n"
1674: + "{\n"
1675: + " flyMove.expand = 0;\n"
1676: + " flyMove.flyY = window.screen.height;\n"
1677: + " flyMove.flyX = window.screen.width;\n"
1678: + "}\n"
1679: + "\n"
1680: + "function flyMove()\n"
1681: + "{\n"
1682: + " flyMove.expand += 2;\n"
1683: + " flyMove.flyY -= 2;\n"
1684: + " g_oPopup.show(flyMove.flyX-flyMove.expand, flyMove.flyY, flyMove.expand, flyMove.expand);\n"
1685: + " var oPopupBody = g_oPopup.document.body;\n"
1686: + " if (oPopupBody.clientWidth >= oPopupBody.scrollWidth && oPopupBody.clientHeight >= oPopupBody.scrollHeight)\n"
1687: + " {\n"
1688: + " window.clearInterval(g_idFlyPopup);\n"
1689: + " g_idFlyPopup = -1;\n"
1690: + " window.setTimeout( 'closePopup()', 15000 );\n"
1691: + " }\n"
1692: + "}\n"
1693: + "flyMove.expand = 0;\n"
1694: + "flyMove.flyY = 0;\n"
1695: + "flyMove.flyX = 0;\n"
1696: + "\n"
1697: + "function AnimateNotify()\n"
1698: + "{\n"
1699: + " if( null == g_oPopup )\n"
1700: + " {\n"
1701: + " return;\n"
1702: + " }\n"
1703: + " var oPopupBody = g_oPopup.document.body;\n"
1704: + "\n"
1705: + " var obj = g_winDocAll['idNewMail'].firstChild;\n"
1706: + " var szHTML = \"<TABLE height=100% width=100% cellpadding=5 cellspacing=5 style=\\\"FONT-SIZE:smaller\\\"><TR><TD align=middle >\"+\n"
1707: + " \"<A HREF=\\\"#\\\" HIDEFOCUS>\"+obj.title+\"</A><BR><IMG id='nbImage' style='padding-top:4px;CURSOR:hand;BORDER:0 none;' src='' alt=''><DIV></DIV>\"+\n"
1708: + " \"</TD></TR></TABLE>\"\n"
1709: + "\n"
1710: + " oPopupBody.innerHTML = szHTML;\n"
1711: + " var obj = g_winDocAll['inbox'];\n"
1712: + " if( null != obj )\n"
1713: + " {\n"
1714: + " obj = obj.firstChild;\n"
1715: + " var oImg = oPopupBody.all['nbImage'];\n"
1716: + " oImg.alt = obj.alt;\n"
1717: + " oImg.src = obj.src;\n"
1718: + " obj = obj.parentElement.nextSibling;\n"
1719: + " oImg.nextSibling.innerText = obj.innerText;\n"
1720: + " }\n"
1721: + " oPopupBody.style.fontSize = document.body.currentStyle.fontSize;\n"
1722: + " oPopupBody.style.backgroundColor='infobackground';\n"
1723: + " oPopupBody.style.cursor=\"hand\";\n"
1724: + " oPopupBody.style.color = \"infotext\";\n"
1725: + " oPopupBody.style.borderWidth='3px';\n"
1726: + " oPopupBody.style.borderStyle='window-inset';\n"
1727: + " oPopupBody.style.borderColor='activeborder';\n"
1728: + " oPopupBody.onclick = ShowInbox;\n"
1729: + " flyInit();\n"
1730: + " g_idFlyPopup = window.setInterval(flyMove,10);\n"
1731: + "}\n"
1732: + "\n"
1733: + "function closePopup()\n"
1734: + "{\n"
1735: + " if( null != g_oPopup )\n"
1736: + " {\n"
1737: + " g_oPopup.hide();\n"
1738: + " }\n"
1739: + "}\n"
1740: + "\n"
1741: + "function ShowInbox()\n"
1742: + "{\n"
1743: + " window.top.focus();\n"
1744: + " Navigate( g_ctlNotify.folder + \"/?Cmd=contents\" );\n"
1745: + " if( -1 != g_idFlyPopup )\n"
1746: + " {\n"
1747: + " window.clearInterval(g_idFlyPopup);\n"
1748: + " g_idFlyPopup = -1\n"
1749: + " }\n"
1750: + " closePopup();\n"
1751: + " var obj = g_winDocAll['idNewMail'];\n"
1752: + " if( null != obj )\n"
1753: + " {\n"
1754: + " obj.style.display=\"none\";\n"
1755: + " }\n"
1756: + "}\n"
1757: + "\n"
1758: + "function newOptions( szVal )\n"
1759: + "{\n"
1760: + " var rgVals = szVal.split(',');\n"
1761: + " if( g_szEnableReminders != rgVals[0] )\n"
1762: + " {\n"
1763: + " g_szEnableReminders = rgVals[0];\n"
1764: + " switch( g_szEnableReminders )\n"
1765: + " {\n"
1766: + " default:\n"
1767: + " case \"0\":\n"
1768: + " if( g_ctlReminder )\n"
1769: + " {\n"
1770: + " g_ctlReminder.enable=false;\n"
1771: + " }\n"
1772: + " closeReminder();\n"
1773: + " break;\n"
1774: + " case \"1\":\n"
1775: + " case \"2\":\n"
1776: + " closeReminder();\n"
1777: + " g_ctlReminder = g_winDocAll['objReminder'];\n"
1778: + " if( null != g_ctlReminder )\n"
1779: + " {\n"
1780: + " g_ctlReminder.onchange = onReminders;\n"
1781: + " g_ctlReminder.enable = true;\n"
1782: + " }\n"
1783: + " break;\n"
1784: + " }\n"
1785: + " }\n"
1786: + "\n"
1787: + " if( g_szEnableNewMail != rgVals[1] )\n"
1788: + " {\n"
1789: + " g_ctlNotify = g_winDocAll['objNotify'];\n"
1790: + " if( null == g_ctlNotify )\n"
1791: + " {\n"
1792: + " return;\n"
1793: + " }\n"
1794: + " if( \"0\" == rgVals[1] )\n"
1795: + " {\n"
1796: + " g_ctlNotify.enable = false;\n"
1797: + " }\n"
1798: + " else\n"
1799: + " {\n"
1800: + " if( 0 == g_nEnableNewMail )\n"
1801: + " {\n"
1802: + " g_ctlNotify.enable = true;\n"
1803: + " g_ctlNotify.onchange = onNewMail;\n"
1804: + " }\n"
1805: + " }\n"
1806: + " g_szEnableNewMail = rgVals[1];\n"
1807: + " g_nEnableNewMail = parseInt( g_szEnableNewMail, 10 );\n"
1808: + " }\n"
1809: + "}\n"
1810: + "\n"
1811: + "function onopened( szFolder )\n"
1812: + "{\n"
1813: + " var szInbox = \"\";\n"
1814: + " if( g_szInboxFolder.length )\n"
1815: + " {\n"
1816: + " szInbox = g_szInboxFolder.substr(1);\n"
1817: + " if( szFolder === szInbox )\n"
1818: + " {\n"
1819: + " closePopup();\n"
1820: + " var obj = g_winDocAll['idNewMail'];\n"
1821: + " if( null != obj )\n"
1822: + " {\n"
1823: + " obj.style.display=\"none\";\n"
1824: + " }\n"
1825: + " }\n"
1826: + " }\n"
1827: + " return szInbox;\n"
1828: + "}\n"
1829: + "\n"
1830: + "function setDefaultView(sValue)\n"
1831: + "{\n"
1832: + " if (g_bShowFolders == sValue)\n"
1833: + " {\n"
1834: + " return;\n"
1835: + " }\n"
1836: + " g_bShowFolders = sValue;\n"
1837: + "\n"
1838: + " var szXML = \"<?xml version=\\\"1.0\\\" ?>\" +\n"
1839: + " \"<D:propertyupdate xmlns:D=\\\"DAV:\\\" xmlns:a=\\\"http://schemas.microsoft.com/exchange/\\\">\" +\n"
1840: + " \"<D:set><D:prop><a:webclientshowhierarchy>\" + sValue + \"</a:webclientshowhierarchy></D:prop></D:set>\" +\n"
1841: + " \"</D:propertyupdate>\";\n"
1842: + " var objXMLHttpRequest= new ActiveXObject(\"Microsoft.XMLHTTP\");\n"
1843: + " objXMLHttpRequest.open(\"PROPPATCH\", g_szUserBase, true);\n"
1844: + " objXMLHttpRequest.setRequestHeader(\"Content-Type\",\"text/xml\");\n"
1845: + " objXMLHttpRequest.setRequestHeader(\"Depth\", \"0\");\n"
1846: + "\n"
1847: + " objXMLHttpRequest.send(szXML);\n"
1848: + " var testVar='http://rajanagendra.sun.com/Base/Raja/abc.html';\n"
1849: + "}\n";
1850:
1851: String lVarRules = "<Variable name=\"testVar\"/>";
1852:
1853: RuleSet lRuleSet = CreateRuleSet.withJSVariableRules(lVarRules);
1854:
1855: Rewriter lRewriter = RewriterPool.create(lRuleSet,
1856: LanguageConstants.JS_MIME);
1857: String lResult = lRewriter.rewrite(lInput,
1858: getDefaultJSTranslator());
1859: assertEquals(lExpectation, lResult);
1860: }//testVW_NavBar20_JS()
1861:
1862: public void testBugNo4742026FunctionWithDotInName()
1863: throws Exception {
1864: String lInput = "function window.onload()\n"
1865: + "{\n"
1866: + " var fTimeZoneInfoPrinted = false;\n"
1867: + " g_winDocAll = window.document.all;\n"
1868: + " var obj = AccessFld(g_winDocAll.tblTitleBar);\n"
1869: + " if( null != obj )\n"
1870: + " {\n"
1871: + " obj.onresize = window.onresize;\n"
1872: + " }\n"
1873: + "\n"
1874: + " g_nFontHeight = AccessFld(g_winDocAll.idLoading).offsetHeight;\n"
1875: + " var oStyles = window.document.styleSheets[0];\n"
1876: + " var szFont = \"font-family:'\" + window.document.body.currentStyle.fontFamily + \"'\";\n"
1877: + " oStyles.addRule( \"INPUT\", szFont );\n"
1878: + " oStyles.addRule( \"BUTTON\", szFont );\n"
1879: + " oStyles.addRule( \"SELECT\", szFont );\n"
1880: + " idMsgViewer.addBehavior(g_szVirtualRoot + \"/CONTROLS/view.htc\");\n"
1881: + " m_oUserOpts = g_winDocAll.userSettings;\n"
1882: + " if( null != m_oUserOpts )\n"
1883: + " {\n"
1884: + " try\n"
1885: + " {\n"
1886: + " m_oUserOpts.load( m_szOptsFile );\n"
1887: + " var szShow = m_oUserOpts.getAttribute( m_szPreviewPane );\n"
1888: + " if( \"true\" == szShow && null != g_winDocAll.previewpane)\n"
1889: + " {\n"
1890: + " onCbClickEvent(g_winDocAll.previewpane, false);\n"
1891: + " }\n"
1892: + " }\n"
1893: + " catch(e){}\n"
1894: + " }\n"
1895: + " \n"
1896: + " if(!g_fPublicOnly &&\n"
1897: + " !fVerifyTimeZone(g_tzOffsetJan, g_tzOffsetJul ))\n"
1898: + " {\n"
1899: + " idStatus.style.display = \"\";\n"
1900: + " idStatus.insertAdjacentText(\"beforeEnd\", g_szTimeZoneConflict);\n"
1901: + " fTimeZoneInfoPrinted = true;\n"
1902: + " }\n"
1903: + "\n"
1904: + " if(g_szPwdExpiryInfoMessage != \"\")\n"
1905: + " {\n"
1906: + " if (fTimeZoneInfoPrinted == true)\n"
1907: + " {\n"
1908: + " // Introduce a break\n"
1909: + " idStatus.insertAdjacentText(\"beforeEnd\", \"\\r\")\n"
1910: + " }\n"
1911: + " else\n"
1912: + " {\n"
1913: + " idStatus.style.display = \"\";\n"
1914: + " }\n"
1915: + " idStatus.insertAdjacentText(\"beforeEnd\", g_szPwdExpiryInfoMessage)\n"
1916: + " }\n"
1917: + " window.onresize();\n"
1918: + " //note: all dropdowns must be initialized \"hidden\" in a table for correct widthing\n"
1919: + " if (null!=g_WinDocAll.viewSelect)\n"
1920: + " {\n"
1921: + " g_WinDocAll.viewSelect.style.display=\"\";\n"
1922: + " } \n"
1923: + " //note g_szVirtualRoot must be set to call fnForceImageRepaint\n"
1924: + " setTimeout(\"fnForceImagePaint()\",100)\n" + "}\n";
1925:
1926: String lExpectation = "function window.onload()\n"
1927: + "{\n"
1928: + " var fTimeZoneInfoPrinted = false;\n"
1929: + " g_winDocAll = window.document.all;\n"
1930: + " var obj = AccessFld(g_winDocAll.tblTitleBar);\n"
1931: + " if( null != obj )\n"
1932: + " {\n"
1933: + " obj.onresize = window.onresize;\n"
1934: + " }\n"
1935: + "\n"
1936: + " g_nFontHeight = AccessFld(g_winDocAll.idLoading).offsetHeight;\n"
1937: + " var oStyles = window.document.styleSheets[0];\n"
1938: + " var szFont = \"font-family:'\" + window.document.body.currentStyle.fontFamily + \"'\";\n"
1939: + " oStyles.addRule( \"INPUT\", szFont );\n"
1940: + " oStyles.addRule( \"BUTTON\", szFont );\n"
1941: + " oStyles.addRule( \"SELECT\", szFont );\n"
1942: + " idMsgViewer.addBehavior("
1943: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1944: + "g_szVirtualRoot + \"/CONTROLS/view.htc\"));\n"
1945: + " m_oUserOpts = g_winDocAll.userSettings;\n"
1946: + " if( null != m_oUserOpts )\n"
1947: + " {\n"
1948: + " try\n"
1949: + " {\n"
1950: + " m_oUserOpts.load( m_szOptsFile );\n"
1951: + " var szShow = m_oUserOpts.getAttribute( m_szPreviewPane );\n"
1952: + " if( \"true\" == szShow && null != g_winDocAll.previewpane)\n"
1953: + " {\n"
1954: + " onCbClickEvent(g_winDocAll.previewpane, false);\n"
1955: + " }\n"
1956: + " }\n"
1957: + " catch(e){}\n"
1958: + " }\n"
1959: + " \n"
1960: + " if(!g_fPublicOnly &&\n"
1961: + " !fVerifyTimeZone(g_tzOffsetJan, g_tzOffsetJul ))\n"
1962: + " {\n"
1963: + " idStatus.style.display = \"\";\n"
1964: + " idStatus.insertAdjacentText(\"beforeEnd\", g_szTimeZoneConflict);\n"
1965: + " fTimeZoneInfoPrinted = true;\n"
1966: + " }\n"
1967: + "\n"
1968: + " if(g_szPwdExpiryInfoMessage != \"\")\n"
1969: + " {\n"
1970: + " if (fTimeZoneInfoPrinted == true)\n"
1971: + " {\n"
1972: + " // Introduce a break\n"
1973: + " idStatus.insertAdjacentText(\"beforeEnd\", \"\\r\")\n"
1974: + " }\n"
1975: + " else\n"
1976: + " {\n"
1977: + " idStatus.style.display = \"\";\n"
1978: + " }\n"
1979: + " idStatus.insertAdjacentText(\"beforeEnd\", g_szPwdExpiryInfoMessage)\n"
1980: + " }\n"
1981: + " window.onresize();\n"
1982: + " //note: all dropdowns must be initialized \"hidden\" in a table for correct widthing\n"
1983: + " if (null!=g_WinDocAll.viewSelect)\n"
1984: + " {\n"
1985: + " g_WinDocAll.viewSelect.style.display=\"\";\n"
1986: + " } \n"
1987: + " //note g_szVirtualRoot must be set to call fnForceImageRepaint\n"
1988: + " setTimeout(\"fnForceImagePaint()\",100)\n"
1989: + "}\n"
1990: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
1991:
1992: String lJSFuncRules = "<Function type=\"EXPRESSION\" name=\"*.addBehavior\" paramPatterns=\"y\"/>";
1993: RuleSet lRuleSet = CreateRuleSet
1994: .withHTMLJSTokenJSVarJSFunRules("", "", lJSFuncRules);
1995: Rewriter lRewriter = RewriterPool.create(lRuleSet,
1996: LanguageConstants.JS_MIME);
1997: String lResult = lRewriter.rewrite(lInput,
1998: getDefaultJSTranslator());
1999: assertEquals(lExpectation, lResult);
2000: }//testBugNo4742026FunctionWithDotInName()
2001:
2002: public void testBugNo4721347StringContinuityCharWithOutEOL()
2003: throws Exception {
2004: String lInput = "mfGetAppointments.szSelect ="
2005: + "'\"urn:schemas:calendar:location\" AS location, \\r\\"
2006: + "\"urn:schemas:httpmail:subject\" AS subject, \\r\\"
2007: + "\"urn:schemas:calendar:dtstart\" AS dtstart, \\r\\"
2008: + "\"urn:schemas:calendar:dtend\" AS dtend, \\r\\"
2009: + "\"urn:schemas:calendar:busystatus\" AS busystatus, \\r\\"
2010: + "\"urn:schemas:calendar:instancetype\" AS instancetype, \\r\\"
2011: + "\"urn:schemas:calendar:alldayevent\" AS alldayevent, \\r\\"
2012: + "\"urn:schemas:calendar:remindernexttime\" AS remindernexttime, \\r\\"
2013: + "\"http://schemas.microsoft.com/mapi/proptag/x10c70003\" AS pr_cdormid, \\r\\"
2014: + "\"http://schemas.microsoft.com/exchange/sensitivity\" AS sensitivity, \\r\\"
2015: + "\"http://schemas.microsoft.com/mapi/apptstateflags\" AS apptstateflags, \\r\\"
2016: + "\"urn:schemas:calendar:uid\" AS uid \\r';"
2017: + "var testVar='abc.html';";
2018:
2019: String lExpectation = "mfGetAppointments.szSelect ="
2020: + "'\"urn:schemas:calendar:location\" AS location, \\r\\"
2021: + "\"urn:schemas:httpmail:subject\" AS subject, \\r\\"
2022: + "\"urn:schemas:calendar:dtstart\" AS dtstart, \\r\\"
2023: + "\"urn:schemas:calendar:dtend\" AS dtend, \\r\\"
2024: + "\"urn:schemas:calendar:busystatus\" AS busystatus, \\r\\"
2025: + "\"urn:schemas:calendar:instancetype\" AS instancetype, \\r\\"
2026: + "\"urn:schemas:calendar:alldayevent\" AS alldayevent, \\r\\"
2027: + "\"urn:schemas:calendar:remindernexttime\" AS remindernexttime, \\r\\"
2028: + "\"http://schemas.microsoft.com/mapi/proptag/x10c70003\" AS pr_cdormid, \\r\\"
2029: + "\"http://schemas.microsoft.com/exchange/sensitivity\" AS sensitivity, \\r\\"
2030: + "\"http://schemas.microsoft.com/mapi/apptstateflags\" AS apptstateflags, \\r\\"
2031: + "\"urn:schemas:calendar:uid\" AS uid \\r';"
2032: + "var testVar='http://rajanagendra.sun.com/Base/Raja/abc.html';";
2033:
2034: String lVarRules = "<Variable name=\"testVar\"/>";
2035:
2036: RuleSet lRuleSet = CreateRuleSet.withJSVariableRules(lVarRules);
2037:
2038: Rewriter lRewriter = RewriterPool.create(lRuleSet,
2039: LanguageConstants.JS_MIME);
2040: String lResult = lRewriter.rewrite(lInput,
2041: getDefaultJSTranslator());
2042: assertEquals(lExpectation, lResult);
2043: }//testBugNo4721347StringContinuityCharWithOutEOL()
2044:
2045: public void testBugNo4721347StringContinuityCharEOL()
2046: throws Exception {
2047: String lInput = "mfGetAppointments.szSelect =\n"
2048: + "'\"urn:schemas:calendar:location\" AS location, \\r\\\n"
2049: + "\"urn:schemas:httpmail:subject\" AS subject, \\r\\\n"
2050: + "\"urn:schemas:calendar:dtstart\" AS dtstart, \\r\\\n"
2051: + "\"urn:schemas:calendar:dtend\" AS dtend, \\r\\\n"
2052: + "\"urn:schemas:calendar:busystatus\" AS busystatus, \\r\\\n"
2053: + "\"urn:schemas:calendar:instancetype\" AS instancetype, \\r\\\n"
2054: + "\"urn:schemas:calendar:alldayevent\" AS alldayevent, \\r\\\n"
2055: + "\"urn:schemas:calendar:remindernexttime\" AS remindernexttime, \\r\\\n"
2056: + "\"http://schemas.microsoft.com/mapi/proptag/x10c70003\" AS pr_cdormid, \\r\\\n"
2057: + "\"http://schemas.microsoft.com/exchange/sensitivity\" AS sensitivity, \\r\\\n"
2058: + "\"http://schemas.microsoft.com/mapi/apptstateflags\" AS apptstateflags, \\r\\\n"
2059: + "\"urn:schemas:calendar:uid\" AS uid \\r';\n"
2060: + "var testVar='abc.html';\n";
2061:
2062: String lExpectation = "mfGetAppointments.szSelect =\n"
2063: + "'\"urn:schemas:calendar:location\" AS location, \\r\\\n"
2064: + "\"urn:schemas:httpmail:subject\" AS subject, \\r\\\n"
2065: + "\"urn:schemas:calendar:dtstart\" AS dtstart, \\r\\\n"
2066: + "\"urn:schemas:calendar:dtend\" AS dtend, \\r\\\n"
2067: + "\"urn:schemas:calendar:busystatus\" AS busystatus, \\r\\\n"
2068: + "\"urn:schemas:calendar:instancetype\" AS instancetype, \\r\\\n"
2069: + "\"urn:schemas:calendar:alldayevent\" AS alldayevent, \\r\\\n"
2070: + "\"urn:schemas:calendar:remindernexttime\" AS remindernexttime, \\r\\\n"
2071: + "\"http://schemas.microsoft.com/mapi/proptag/x10c70003\" AS pr_cdormid, \\r\\\n"
2072: + "\"http://schemas.microsoft.com/exchange/sensitivity\" AS sensitivity, \\r\\\n"
2073: + "\"http://schemas.microsoft.com/mapi/apptstateflags\" AS apptstateflags, \\r\\\n"
2074: + "\"urn:schemas:calendar:uid\" AS uid \\r';\n"
2075: + "var testVar='http://rajanagendra.sun.com/Base/Raja/abc.html';\n";
2076:
2077: String lVarRules = "<Variable name=\"testVar\"/>";
2078:
2079: RuleSet lRuleSet = CreateRuleSet.withJSVariableRules(lVarRules);
2080:
2081: Rewriter lRewriter = RewriterPool.create(lRuleSet,
2082: LanguageConstants.JS_MIME);
2083: String lResult = lRewriter.rewrite(lInput,
2084: getDefaultJSTranslator());
2085: assertEquals(lExpectation, lResult);
2086: }//testBugNo4721347StringContinuityCharEOL()
2087:
2088: public void testBug4742026WindowsFile() throws Exception {
2089: String lInput = Resource
2090: .read("/com/sun/portal/rewriter/test/samples/html/Bug4721347/Source4Bug4721347Windows.html");
2091:
2092: String lExpectation = "<HTML>\r\n"
2093: + "<HEAD>\r\n"
2094: + "<SCRIPT>\n"
2095: + "function webguiGetSearchhelpButtonHTML(fieldname)\n"
2096: + "{\n"
2097: + "\n"
2098: + "// \\5c -> \\\n"
2099: + " var html ;\n"
2100: + "\n"
2101: + " html = '<img src=\"' + webguiMimeURL + '/webgui/'+webguiTheme+'/images/buttons/tanicon.gif\" style=\"width:17;height:17\"\\\n"
2102: + " onmouseout=\"status=\\' \\';\"\\\n"
2103: + " onmouseover=\"status=\\'?\\';\"\\\n"
2104: + " onclick=\"javascript:webguiRaiseSearchhelp(\\'' + fieldname + '\\')\\\n"
2105: + "\">';\n"
2106: + "\n"
2107: + "var testVar = \"http://rajanagendra.sun.com/Base/Raja/abc.html\";\n\n"
2108: + " return (html) ;\n\n" + "}\n" + "\n"
2109: + "</SCRIPT>\r\n" + "</HEAD>\r\n"
2110: + "<BODY BGCOLOR=\"#FFFFFF\" \"#000000\">\r\n"
2111: + "</BODY>\r\n" + "</HTML>\r\n";
2112:
2113: String lExpectationWithOutFix = "<HTML>\r\n"
2114: + "<HEAD>\r\n"
2115: + "<SCRIPT>\r\n"
2116: + "function webguiGetSearchhelpButtonHTML(fieldname)\r\n"
2117: + "{\r\n"
2118: + "\r\n"
2119: + "// \\5c -> \\\r\n"
2120: + " var html ;\r\n"
2121: + "\r\n"
2122: + " html = '<img src=\"' + webguiMimeURL + '/webgui/'+webguiTheme+'/images/buttons/tanicon.gif\" style=\"width:17;height:17\"\\\r\n"
2123: + " onmouseout=\"status=\\' \\';\"\\\r\n"
2124: + " onmouseover=\"status=\\'?\\';\"\\\r\n"
2125: + " onclick=\"javascript:webguiRaiseSearchhelp(\\'' + fieldname + '\\')\\\r\n"
2126: + "\">';\r\n" + "\r\n"
2127: + "var testVar = \"abc.html\";\r\n" + "\r\n"
2128: + " return (html) ;\r\n" + "\r\n" + "}\r\n" + "\r\n"
2129: + "</SCRIPT>\r\n" + "</HEAD>\r\n"
2130: + "<BODY BGCOLOR=\"#FFFFFF\" \"#000000\">\r\n"
2131: + "</BODY>\r\n" + "</HTML>\r\n";
2132:
2133: String lVarRules = "<Variable name=\"testVar\"/>";
2134:
2135: RuleSet lRuleSet = CreateRuleSet.withJSVariableRules(lVarRules);
2136:
2137: Rewriter lRewriter = RewriterPool.create(lRuleSet,
2138: LanguageConstants.HTML_MIME);
2139: String lResult = lRewriter.rewrite(lInput,
2140: getDefaultTranslator());
2141: assertEquals(lExpectation, lResult);
2142: }//testBug4742026WindowsFile()
2143:
2144: public void testBug4742026UnixFile() throws Exception {
2145: String lInput = Resource
2146: .read("/com/sun/portal/rewriter/test/samples/html/Bug4721347/Source4Bug4721347Unix.html");
2147:
2148: String lExpectation = "<HTML>\n"
2149: + "<HEAD>\n"
2150: + "<SCRIPT>\n"
2151: + "function webguiGetSearchhelpButtonHTML(fieldname)\n"
2152: + "{\n"
2153: + "\n"
2154: + "// \\5c -> \\\n"
2155: + " var html ;\n"
2156: + "\n"
2157: + " html = '<img src=\"' + webguiMimeURL + '/webgui/'+webguiTheme+'/images/buttons/tanicon.gif\" style=\"width:17;height:17\"\\\n"
2158: + " onmouseout=\"status=\\' \\';\"\\\n"
2159: + " onmouseover=\"status=\\'?\\';\"\\\n"
2160: + " onclick=\"javascript:webguiRaiseSearchhelp(\\'' + fieldname + '\\')\\\n"
2161: + "\">';\n"
2162: + "\n"
2163: + "var testVar = \"http://rajanagendra.sun.com/Base/Raja/abc.html\";\n"
2164: + "\n" + " return (html) ;\n" + "\n" + "}\n" + "\n"
2165: + "</SCRIPT>\n" + "</HEAD>\n"
2166: + "<BODY BGCOLOR=\"#FFFFFF\" \"#000000\">\n"
2167: + "</BODY>\n" + "</HTML>\n\n";
2168:
2169: String lVarRules = "<Variable name=\"testVar\"/>";
2170:
2171: RuleSet lRuleSet = CreateRuleSet.withJSVariableRules(lVarRules);
2172:
2173: Rewriter lRewriter = RewriterPool.create(lRuleSet,
2174: LanguageConstants.HTML_MIME);
2175: String lResult = lRewriter.rewrite(lInput,
2176: getDefaultTranslator());
2177: assertEquals(lExpectation, lResult);
2178: }//testBug4742026UnixFile()
2179:
2180: public void testBug4742026UnixFileSingleLine() throws Exception {
2181: String lInput = Resource
2182: .read("/com/sun/portal/rewriter/test/samples/html/Bug4721347/Source4Bug4721347UnixSingleLine.html");
2183:
2184: String lExpectation = "<HTML>\n"
2185: + "<HEAD>\n"
2186: + "<SCRIPT>\n"
2187: + "function webguiGetSearchhelpButtonHTML(fieldname)\n"
2188: + "{\n"
2189: + "\n"
2190: + "// \\5c -> \\\n"
2191: + " var html ;\n"
2192: + " html = '<img src=\"' + webguiMimeURL + '/webgui/'+webguiTheme+'/images/buttons/tanicon.gif\" style=\"width:17;height:17\" onmouseout=\"status=\\' \\';\" onmouseover=\"status=\\'?\\';\" onclick=\"javascript:webguiRaiseSearchhelp(\\'' + fieldname + '\\') \">';\n"
2193: + " var testVar = \"http://rajanagendra.sun.com/Base/Raja/abc.html\";\n"
2194: + " return (html) ;\n" + "}\n" + "\n"
2195: + "</SCRIPT>\n" + "</HEAD>\n"
2196: + "<BODY BGCOLOR=\"#FFFFFF\" \"#000000\">\n"
2197: + "</BODY>\n" + "</HTML>\n\n";
2198:
2199: String lVarRules = "<Variable name=\"testVar\"/>";
2200:
2201: RuleSet lRuleSet = CreateRuleSet.withJSVariableRules(lVarRules);
2202:
2203: Rewriter lRewriter = RewriterPool.create(lRuleSet,
2204: LanguageConstants.HTML_MIME);
2205: String lResult = lRewriter.rewrite(lInput,
2206: getDefaultTranslator());
2207: assertEquals(lExpectation, lResult);
2208: }//testBug4742026UnixFileSingleLine()
2209:
2210: public void testBug4742026WindowsFileSingleLine() throws Exception {
2211: String lInput = Resource
2212: .read("/com/sun/portal/rewriter/test/samples/html/Bug4721347/Source4Bug4721347WindowsSingleLine.html");
2213:
2214: String lExpectation = "<HTML>\r\n"
2215: + "<HEAD>\r\n"
2216: + "<SCRIPT>\n"
2217: + "function webguiGetSearchhelpButtonHTML(fieldname)\n"
2218: + "{\n"
2219: + "\n"
2220: + "// \\5c -> \\\n"
2221: + " var html ;\n\n"
2222: + " html = '<img src=\"' + webguiMimeURL + '/webgui/'+webguiTheme+'/images/buttons/tanicon.gif\" style=\"width:17;height:17\" onmouseout=\"status=\\' \\';\" onmouseover=\"status=\\'?\\';\" onclick=\"javascript:webguiRaiseSearchhelp(\\'' + fieldname + '\\')\">';\n"
2223: + "\nvar testVar = \"http://rajanagendra.sun.com/Base/Raja/abc.html\";\n"
2224: + " return (html) ;\n\n}\n\n" + "</SCRIPT>\r\n"
2225: + "</HEAD>\r\n"
2226: + "<BODY BGCOLOR=\"#FFFFFF\" \"#000000\">\r\n"
2227: + "</BODY>\r\n" + "</HTML>\r\n\r\n";
2228:
2229: String lVarRules = "<Variable name=\"testVar\"/>";
2230:
2231: RuleSet lRuleSet = CreateRuleSet.withJSVariableRules(lVarRules);
2232:
2233: Rewriter lRewriter = RewriterPool.create(lRuleSet,
2234: LanguageConstants.HTML_MIME);
2235: String lResult = lRewriter.rewrite(lInput,
2236: getDefaultTranslator());
2237: assertEquals(lExpectation, lResult);
2238: }//testBug4742026WindowsFileSingleLine()
2239:
2240: public static void main(String[] args) {
2241: RewriterModule.initFile();
2242: BasicTestCase.run(TestJSOWAPages.class);
2243: TestSuite testSuite = new TestSuite();
2244: testSuite.addTest(new TestJSOWAPages(
2245: "testBug4742026WindowsFile"));
2246: //BasicTestCase.run( testSuite );
2247: }//main()
2248:
2249: }//class TestJSOWAPages
|