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.getAnnot = function
Alert: PASS: this.getAnnot() = undefined
Alert: PASS: this.getAnnot(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: typeof this.calculateNow = 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.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.
