I converted the the TestRunner tests that were included in the yesterday's svn version of selenium to run as ruby-driven tests. Too much free time, I guess :-) They all worked OK after I added about a dozen or so commands to Interpreter.py and RPC2.rpy. If this is of any interest, I'd be happy to try to provide a script that will generate these tests from TestRunner html test files - I did it the hard way by parsing the log.

At any rate, here's what I had to add:

>>>  RPC2.rpy

        #
        #  Added commands
        #
    def xmlrpc_answerOnNextPrompt(self, value):
        return deferToThread(interpreter.answerOnNextPrompt, value)

    def xmlrpc_close(self):
        return deferToThread(interpreter.close)

    def xmlrpc_fireEvent(self, field, value):
        return deferToThread(interpreter.fireEvent, field, value)

    def xmlrpc_goBack(self):
        return deferToThread(interpreter.goBack)

    def xmlrpc_goBackAndWait(self):
        return deferToThread(interpreter.goBackAndWait)

    def xmlrpc_store(self, field, value):
        return deferToThread(interpreter.store, field, value)

    def xmlrpc_storeAttribute(self, field, value):
        return deferToThread(interpreter.storeAttribute, field, value)

    def xmlrpc_verifyEditable(self, field):
        return deferToThread(interpreter.verifyEditable, field)

    def xmlrpc_verifyErrorOnNext(self, text):
        return deferToThread(interpreter.verifyErrorOnNext, text)

    def xmlrpc_verifyFailureOnNext(self, text):
        return deferToThread(interpreter.verifyFailureOnNext, text)

    def xmlrpc_verifyNotAttribute(self, type, text):
        return deferToThread(interpreter.verifyNotAttribute, type, text)

    def xmlrpc_verifyNotEditable(self, field):
        return deferToThread(interpreter.verifyNotEditable, field)

    def xmlrpc_verifyNotText(self, type, text):
        return deferToThread(interpreter.verifyNotText, type, text)

    def xmlrpc_verifyNotTitle(self, title):
        return deferToThread(interpreter.verifyNotTitle, title)

    def xmlrpc_verifyNotValue(self, field, value):
        return deferToThread(interpreter.verifyNotValue, field, value)

    def xmlrpc_verifyNotVisible(self, field):
        return deferToThread(interpreter.verifyNotVisible, field)

    def xmlrpc_verifyPrompt(self, value):
        return deferToThread(interpreter.verifyPrompt, value)

    def xmlrpc_verifyTextNotPresent(self, type, text):
return deferToThread(interpreter.verifyTextNotPresent, type, text)

    def xmlrpc_verifyVisible(self, field):
        return deferToThread(interpreter.verifyVisible, field)

    def xmlrpc_waitForValue(self, field, value):
        return deferToThread(interpreter.waitForValue, field, value)


>>>  Interpreter.py

        #
        #  Added commands
        #
    def answerOnNextPrompt(self, value):
        return self.dispatchCommand("answerOnNextPrompt", value)

    def close(self):
        return self.dispatchCommand("close")

    def fireEvent(self, field, value):
        return self.dispatchCommand("fireEvent", field, value)

    def goBack(self):
        return self.dispatchCommand("goBack")

    def goBackAndWait(self):
        return self.dispatchCommand("goBackAndWait")

    def store(self, field, value):
        return self.dispatchCommand("store", field, value)

    def storeAttribute(self, field, value):
        return self.dispatchCommand("storeAttribute", field, value)

    def verifyEditable(self, field):
        return self.dispatchCommand("verifyEditable", field)

    def verifyErrorOnNext(self, text):
        return self.dispatchCommand("verifyErrorOnNext", text)

    def verifyFailureOnNext(self, text):
        return self.dispatchCommand("verifyFailureOnNext", text)

    def verifyNotAttribute(self, type, text):
        return self.dispatchCommand("verifyNotAttribute", type, text)

    def verifyNotEditable(self, field):
        return self.dispatchCommand("verifyNotEditable", field)

    def verifyNotText(self, type, text):
        return self.dispatchCommand("verifyNotText", type, text)

    def verifyNotTitle(self, title):
        return self.dispatchCommand("verifyNotTitle", title)

    def verifyNotValue(self, field, value):
        return self.dispatchCommand("verifyNotValue", field, value)

    def verifyNotVisible(self, field):
        return self.dispatchCommand("verifyNotVisible", field)

    def verifyPrompt(self, value):
        return self.dispatchCommand("verifyPrompt", value)

    def verifyTextNotPresent(self, type, text):
        return self.dispatchCommand("verifyTextNotPresent", type, text)

    def verifyVisible(self, field):
        return self.dispatchCommand("verifyVisible", field)

    def waitForValue(self, field, value):
        return self.dispatchCommand("waitForValue", field, value)

_______________________________________________
Selenium-devel mailing list
Selenium-devel@lists.public.thoughtworks.org
http://lists.public.thoughtworks.org/mailman/listinfo/selenium-devel

Reply via email to