Alert: *** Testing Unsupported Methods ***
Alert: PASS: typeof this.addAnnot = function
Alert: PASS: this.addAnnot() = undefined
Alert: PASS: this.addAnnot(1, 2, "clams", [1, 2, 3]) = undefined
Alert: PASS: typeof this.addField = function
Alert: PASS: this.addField() = undefined
Alert: PASS: this.addField(1, 2, "clams", [1, 2, 3]) = undefined
Alert: PASS: typeof this.addLink = function
Alert: PASS: this.addLink() = undefined
Alert: PASS: this.addLink(1, 2, "clams", [1, 2, 3]) = undefined
Alert: PASS: typeof this.closeDoc = function
Alert: PASS: this.closeDoc() = undefined
Alert: PASS: this.closeDoc(1, 2, "clams", [1, 2, 3]) = undefined
Alert: PASS: typeof this.createDataObject = function
Alert: PASS: this.createDataObject() = undefined
Alert: PASS: this.createDataObject(1, 2, "clams", [1, 2, 3]) = undefined
Alert: PASS: typeof this.deletePages = function
Alert: PASS: this.deletePages() = undefined
Alert: PASS: this.deletePages(1, 2, "clams", [1, 2, 3]) = undefined
Alert: PASS: typeof this.exportAsFDF = function
Alert: PASS: this.exportAsFDF() = undefined
Alert: PASS: this.exportAsFDF(1, 2, "clams", [1, 2, 3]) = undefined
Alert: PASS: typeof this.exportAsText = function
Alert: PASS: this.exportAsText() = undefined
Alert: PASS: this.exportAsText(1, 2, "clams", [1, 2, 3]) = undefined
Alert: PASS: typeof this.exportAsXFDF = function
Alert: PASS: this.exportAsXFDF() = undefined
Alert: PASS: this.exportAsXFDF(1, 2, "clams", [1, 2, 3]) = undefined
Alert: PASS: typeof this.extractPages = function
Alert: PASS: this.extractPages() = undefined
Alert: PASS: this.extractPages(1, 2, "clams", [1, 2, 3]) = undefined
Alert: PASS: typeof this.getAnnot3D = function
Alert: PASS: this.getAnnot3D() = undefined
Alert: PASS: this.getAnnot3D(1, 2, "clams", [1, 2, 3]) = undefined
Alert: PASS: typeof this.getAnnots = function
Alert: PASS: this.getAnnots() = undefined
Alert: PASS: this.getAnnots(1, 2, "clams", [1, 2, 3]) = undefined
Alert: PASS: typeof this.getLinks = function
Alert: PASS: this.getLinks() = undefined
Alert: PASS: this.getLinks(1, 2, "clams", [1, 2, 3]) = undefined
Alert: PASS: typeof this.getOCGs = function
Alert: PASS: this.getOCGs() = undefined
Alert: PASS: this.getOCGs(1, 2, "clams", [1, 2, 3]) = undefined
Alert: PASS: typeof this.getPageBox = function
Alert: PASS: this.getPageBox() = undefined
Alert: PASS: this.getPageBox(1, 2, "clams", [1, 2, 3]) = undefined
Alert: PASS: typeof this.getURL = function
Alert: PASS: this.getURL() = undefined
Alert: PASS: this.getURL(1, 2, "clams", [1, 2, 3]) = undefined
Alert: PASS: typeof this.importAnFDF = function
Alert: PASS: this.importAnFDF() = undefined
Alert: PASS: this.importAnFDF(1, 2, "clams", [1, 2, 3]) = undefined
Alert: PASS: typeof this.importAnXFDF = function
Alert: PASS: this.importAnXFDF() = undefined
Alert: PASS: this.importAnXFDF(1, 2, "clams", [1, 2, 3]) = undefined
Alert: PASS: typeof this.importTextData = function
Alert: PASS: this.importTextData() = undefined
Alert: PASS: this.importTextData(1, 2, "clams", [1, 2, 3]) = undefined
Alert: PASS: typeof this.insertPages = function
Alert: PASS: this.insertPages() = undefined
Alert: PASS: this.insertPages(1, 2, "clams", [1, 2, 3]) = undefined
Alert: PASS: typeof this.removeIcon = function
Alert: PASS: this.removeIcon() = undefined
Alert: PASS: this.removeIcon(1, 2, "clams", [1, 2, 3]) = undefined
Alert: PASS: typeof this.replacePages = function
Alert: PASS: this.replacePages() = undefined
Alert: PASS: this.replacePages(1, 2, "clams", [1, 2, 3]) = undefined
Alert: PASS: typeof this.saveAs = function
Alert: PASS: this.saveAs() = undefined
Alert: PASS: this.saveAs(1, 2, "clams", [1, 2, 3]) = undefined
Alert: *** Testing Supported Methods ***
Alert: PASS: typeof this.addIcon = function
Alert: PASS: this.addIcon() threw error Document.addIcon: Incorrect number of parameters passed to function.
Alert: PASS: this.addIcon(1) threw error Document.addIcon: Incorrect number of parameters passed to function.
Alert: PASS: this.addIcon(1, 2, 3) threw error Document.addIcon: Incorrect number of parameters passed to function.
Alert: PASS: this.addIcon("myicon", 3) threw error Document.addIcon: Incorrect parameter type.
Alert: PASS: this.addIcon("myicon", undefined) threw error Document.addIcon: Incorrect parameter type.
Alert: PASS: typeof this.calculateNow = function
Alert: PASS: typeof this.getAnnot = function
Alert: PASS: this.getAnnot() threw error Document.getAnnot: Incorrect number of parameters passed to function.
Alert: PASS: this.getAnnot(0) threw error Document.getAnnot: Incorrect number of parameters passed to function.
Alert: PASS: this.getAnnot(0, "test", 0) threw error Document.getAnnot: Incorrect number of parameters passed to function.
Alert: PASS: typeof this.getField = function
Alert: PASS: this.getField() threw error Document.getField: Incorrect number of parameters passed to function.
Alert: PASS: typeof this.getIcon = function
Alert: PASS: this.getIcon() threw error Document.getIcon: Incorrect number of parameters passed to function.
Alert: PASS: this.getIcon(1, 2) threw error Document.getIcon: Incorrect number of parameters passed to function.
Alert: PASS: typeof this.getNthFieldName = function
Alert: PASS: this.getNthFieldName() threw error Document.getNthFieldName: Incorrect number of parameters passed to function.
Alert: PASS: this.getNthFieldName(-1) threw error Document.getNthFieldName: Incorrect parameter value.
Alert: PASS: typeof this.getPageNthWord = function
Alert: PASS: this.getPageNthWord(0, 0, true, "clams", [1, 2]) = Hello,
Alert: PASS: this.getPageNthWord(-1, 0, true) threw error Document.getPageNthWord: Incorrect parameter value.
Alert: PASS: this.getPageNthWord(6, 0, true) threw error Document.getPageNthWord: Incorrect parameter value.
Alert: PASS: typeof this.getPageNthWordQuads = function
Alert: PASS: typeof this.getPageNumWords = function
Alert: PASS: this.getPageNumWords(0, "clams", [1, 2]) = 2
Alert: PASS: this.getPageNumWords(-1) threw error Document.getPageNumWords: Incorrect parameter value.
Alert: PASS: this.getPageNumWords(6) threw error Document.getPageNumWords: Incorrect parameter value.
Alert: PASS: typeof this.getPrintParams = function
Alert: PASS: typeof this.gotoNamedDest = function
Alert: PASS: this.gotoNamedDest() threw error Document.gotoNamedDest: Incorrect number of parameters passed to function.
Alert: PASS: this.gotoNamedDest(1, 2) threw error Document.gotoNamedDest: Incorrect number of parameters passed to function.
Alert: PASS: typeof this.mailDoc = function
Alert: PASS: typeof this.mailForm = function
Alert: PASS: typeof this.print = function
Alert: PASS: typeof this.removeField = function
Alert: PASS: this.removeField() threw error Document.removeField: Incorrect number of parameters passed to function.
Alert: PASS: typeof this.resetForm = function
Alert: PASS: typeof this.submitForm = function
Alert: PASS: this.submitForm() threw error Document.submitForm: Incorrect number of parameters passed to function.
