Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Tools / RebaselineLogServer / main_unittest.py
index 8477b20..4ac4f35 100644 (file)
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-# Usage: PYTHON_PATH=/path/to/appengine_sdk python loghandler_unittest.py.
+# Usage: PYTHONPATH=/path/to/appengine_sdk python main_unittest.py.
 
 import dev_appserver
 dev_appserver.fix_sys_path()
 
+import json
 import unittest
 import webapp2
 
@@ -45,72 +46,67 @@ class TestHandlers(unittest.TestCase):
         self.testbed.activate()
         self.testbed.init_datastore_v3_stub()
         self.testbed.init_memcache_stub()
+        self.testbed.init_mail_stub()
 
-    def test_update_log(self):
+    def _new_request(self, data, command=None):
         request = webapp2.Request.blank('/updatelog')
         request.method = 'POST'
-        request.POST[main.LOG_PARAM] = 'data to log'
-        request.POST[main.NEW_ENTRY_PARAM] = 'on'
-        request.POST[main.NO_NEEDS_REBASELINE_PARAM] = 'off'
+        request.POST[main.LOG_PARAM] = data
+        request.POST[main.NEW_ENTRY_PARAM] = 'off'
+        if command is not None:
+            request.POST[main.COMMAND_PARAM] = json.dumps(command)
+        return request
 
-        response = request.get_response(main.app)
+    def _assert_response(self, response, body):
         self.assertEqual(response.status_int, 200)
-        self.assertEqual(response.body, 'Wrote new log entry.')
+        self.assertEqual(response.body, body)
 
-        response = request.get_response(main.app)
-        self.assertEqual(response.status_int, 200)
-        self.assertEqual(response.body, 'Wrote new log entry.')
+    def test_update_log(self):
+        request = self._new_request('data to log')
+        request.POST[main.NEW_ENTRY_PARAM] = 'on'
+        self._assert_response(request.get_response(main.app), 'Wrote new log entry.')
 
-        request = webapp2.Request.blank('/updatelog')
-        request.method = 'POST'
-        request.POST[main.LOG_PARAM] = 'data to log'
-        request.POST[main.NEW_ENTRY_PARAM] = 'off'
-        request.POST[main.NO_NEEDS_REBASELINE_PARAM] = 'off'
+        self._assert_response(request.get_response(main.app), 'Wrote new log entry.')
 
-        response = request.get_response(main.app)
-        self.assertEqual(response.status_int, 200)
-        self.assertEqual(response.body, 'Added to existing log entry.')
+        request = self._new_request('data to log')
+        self._assert_response(request.get_response(main.app), 'Added to existing log entry.')
 
-        request = webapp2.Request.blank('/updatelog')
-        request.method = 'POST'
-        request.POST[main.LOG_PARAM] = 'x' * 1000000
-        request.POST[main.NEW_ENTRY_PARAM] = 'off'
-        request.POST[main.NO_NEEDS_REBASELINE_PARAM] = 'off'
+        request = self._new_request('x' * 1000000)
+        self._assert_response(request.get_response(main.app), 'Created new log entry because the previous one exceeded the max length.')
 
-        response = request.get_response(main.app)
-        self.assertEqual(response.status_int, 200)
-        self.assertEqual(response.body, 'Created new log entry because the previous one exceeded the max length.')
+        request = self._new_request('data to log')
+        self._assert_response(request.get_response(main.app), 'Created new log entry because the previous one exceeded the max length.')
 
-        request = webapp2.Request.blank('/updatelog')
-        request.method = 'POST'
-        request.POST[main.LOG_PARAM] = 'data to log'
-        request.POST[main.NEW_ENTRY_PARAM] = 'off'
-        request.POST[main.NO_NEEDS_REBASELINE_PARAM] = 'on'
+        request = self._new_request('data to log')
+        self._assert_response(request.get_response(main.app), 'Added to existing log entry.')
 
-        response = request.get_response(main.app)
-        self.assertEqual(response.status_int, 200)
-        self.assertEqual(response.body, 'Wrote new no needs rebaseline log.')
+    def test_command_execution(self):
+        request = self._new_request('data to log', {})
+        self._assert_response(request.get_response(main.app), 'Wrote new log entry.\nERROR: No command data')
 
-        response = request.get_response(main.app)
-        self.assertEqual(response.status_int, 200)
-        self.assertEqual(response.body, 'Overwrote existing no needs rebaseline log.')
+        request = self._new_request('data to log', {"foo": "bar"})
+        self._assert_response(request.get_response(main.app), 'Added to existing log entry.\nCommand is missing a name: {"foo": "bar"}')
 
-        request = webapp2.Request.blank('/updatelog')
-        request.method = 'POST'
-        request.POST[main.LOG_PARAM] = 'data to log'
-        request.POST[main.NEW_ENTRY_PARAM] = 'off'
-        request.POST[main.NO_NEEDS_REBASELINE_PARAM] = 'off'
+        request = self._new_request('data to log', {
+            'name': 'sendmail',
+            'to': 'foo@example.com',
+            'body': 'Body'
+        })
+        self._assert_response(request.get_response(main.app), 'Added to existing log entry.\nMalformed command JSON')
 
-        response = request.get_response(main.app)
-        self.assertEqual(response.status_int, 200)
-        self.assertEqual(response.body, 'Previous entry was a no need rebaseline log. Writing a new log.')
+        request = self._new_request('data to log', {
+            'name': 'sendmail',
+            'to': 'foo@example.com',
+            'subject': 'Subject',
+            'body': 'Body'
+        })
+        self._assert_response(request.get_response(main.app), 'Added to existing log entry.\nSent mail to foo@example.com (Subject)')
 
     def test_update_log_first_entry_without_new_entry_param(self):
         request = webapp2.Request.blank('/updatelog')
         request.method = 'POST'
         request.POST[main.LOG_PARAM] = 'data to log'
         request.POST[main.NEW_ENTRY_PARAM] = 'off'
-        request.POST[main.NO_NEEDS_REBASELINE_PARAM] = 'off'
 
         response = request.get_response(main.app)
         self.assertEqual(response.status_int, 200)
@@ -121,7 +117,6 @@ class TestHandlers(unittest.TestCase):
         request.method = 'POST'
         request.POST[main.LOG_PARAM] = 'data to log'
         request.POST[main.NEW_ENTRY_PARAM] = 'off'
-        request.POST[main.NO_NEEDS_REBASELINE_PARAM] = 'on'
 
         response = request.get_response(main.app)
         self.assertEqual(response.status_int, 200)