| Index: chrome/test/functional/chromeos_txt_msg_functional.py
|
| diff --git a/chrome/test/functional/chromeos_txt_msg_functional.py b/chrome/test/functional/chromeos_txt_msg_functional.py
|
| deleted file mode 100755
|
| index 9019e24b7ab2df37de088216bb3d7c26196f965a..0000000000000000000000000000000000000000
|
| --- a/chrome/test/functional/chromeos_txt_msg_functional.py
|
| +++ /dev/null
|
| @@ -1,161 +0,0 @@
|
| -#!/usr/bin/env python
|
| -# Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| -# Use of this source code is governed by a BSD-style license that can be
|
| -# found in the LICENSE file.
|
| -
|
| -from email.MIMEText import MIMEText
|
| -import logging
|
| -import os
|
| -import re
|
| -import smtplib
|
| -import sys
|
| -import urllib
|
| -
|
| -import pyauto_functional
|
| -import pyauto
|
| -
|
| -sys.path.append(os.path.join(pyauto.PyUITest.DataDir(), 'pyauto_private',
|
| - 'chromeos', 'network'))
|
| -from gsm_sim_info import SIM, PROVIDER_TXT_SERVER
|
| -
|
| -
|
| -class ChromeosTxtMsgSanity(pyauto.PyUITest):
|
| - """Tests for ChromeOS text message handling"""
|
| -
|
| - def _SendText(self, mail_server, sender, phone_number,
|
| - mobile_provider, msg):
|
| - """Sends a text message to a specific phone
|
| -
|
| - Args:
|
| - mail_server: An SMTP instance.
|
| - sender: Sender's email address.
|
| - phone_number: The phone number the txt message is directed to.
|
| - mobile_provider: A cellular provider defined in
|
| - gsm_sim_info.PROVIDER_TXT_SERVER
|
| - msg: The message to be sent.
|
| -
|
| - """
|
| - recipient = ('%s@%s' % (phone_number,
|
| - PROVIDER_TXT_SERVER[mobile_provider]))
|
| - self._SendMail(mail_server, sender, recipient, None, msg)
|
| -
|
| - def _SendMail(self, mail_server, sender, recipients,
|
| - msg_subject, msg_body):
|
| - """Sends an email using the provided smtp connection
|
| -
|
| - Args:
|
| - mail_server: An SMTP instace.
|
| - sender: Senders email address.
|
| - recipients: Recipients email address.
|
| - msg_subject: The subject line of the email.
|
| - msg_body: The body of the email.
|
| - """
|
| - msg = MIMEText(msg_body)
|
| - msg['To'] = recipients
|
| - msg['From'] = sender
|
| - if msg_subject:
|
| - msg['Subject'] = msg_subject
|
| - mail_server.sendmail(sender, recipients, msg.as_string())
|
| -
|
| - def _GetGmailServerInstance(self, email, password):
|
| - """Creates an SMTP connection with the gmail mail server
|
| -
|
| - Args:
|
| - email: A gmail address.
|
| - password: The password for the gmail address.
|
| -
|
| - Returns:
|
| - An SMTP connection instance.
|
| - """
|
| - mail_server = smtplib.SMTP('smtp.gmail.com', 587)
|
| - mail_server.starttls()
|
| - mail_server.ehlo()
|
| - mail_server.login(email, password)
|
| - return mail_server
|
| -
|
| - def _GetIMSI(self):
|
| - """Obtains the IMSI by running modem status
|
| -
|
| - Returns:
|
| - IMSI of device
|
| - """
|
| - modem_status = os.popen('modem status').read()
|
| - imsi = re.search('IMSI:\s(\d+)', modem_status)
|
| - if not imsi:
|
| - raise Exception('GSM Modem not detected in device')
|
| - return imsi.groups()[0]
|
| -
|
| - def _GetSIMInfo(self):
|
| - """Returns information necessary to send messages
|
| -
|
| - Returns:
|
| - A dictionary with the following format
|
| - {
|
| - 'mdn' : <phone number>,
|
| - 'carrier': <carrier name>
|
| - }
|
| - """
|
| - imsi = self._GetIMSI()
|
| - sim_info = SIM.get(imsi, {})
|
| - if not sim_info:
|
| - raise Exception('Phone number for sim with IMSI=%s is not '
|
| - 'recognized within config file' % imsi)
|
| - return sim_info
|
| -
|
| - def setUp(self):
|
| - # Connect to cellular service if not already connected.
|
| - pyauto.PyUITest.setUp(self)
|
| - connected_cellular = self.NetworkScan().get('connected_cellular')
|
| - if not connected_cellular:
|
| - self.ConnectToCellularNetwork()
|
| - if not self.NetworkScan().get('connected_cellular'):
|
| - raise Exception('Could not connect to cellular service.')
|
| - else:
|
| - logging.debug('Already connected to cellular service %s' %
|
| - connected_cellular)
|
| -
|
| - # Obtain sender, recipient, and SMTP instance.
|
| - self.credentials = self.GetPrivateInfo()['test_account_with_smtp']
|
| - self.sim = self._GetSIMInfo()
|
| - self.mail_server = self._GetGmailServerInstance(
|
| - self.credentials['username'],
|
| - self.credentials['password'])
|
| -
|
| - def tearDown(self):
|
| - self.DisconnectFromCellularNetwork()
|
| - self.mail_server.close()
|
| - for window in range(len(self.GetActiveNotifications())):
|
| - self.CloseNotification(window)
|
| - pyauto.PyUITest.tearDown(self)
|
| -
|
| - def testTxtMsgNotification(self):
|
| - """Notifications are displayed for text messages"""
|
| - msg = 'This is the text message'
|
| - self._SendText(self.mail_server, self.credentials['username'],
|
| - self.sim['mdn'], self.sim['carrier'], msg)
|
| - self.WaitForNotificationCount(1)
|
| - notification_result = self.GetActiveNotifications()[0]['content_url']
|
| - self.assertTrue(re.search(urllib.pathname2url(msg),
|
| - notification_result), 'Invalid message was displayed. '
|
| - 'Expected "%s" but did not find it"' % msg)
|
| -
|
| - def testLongTxtMsgNotification(self):
|
| - """Notifications are displayed for long (>160 char) text messages."""
|
| - long_msg = 'This is a really long message with spaces. Testing to '\
|
| - 'make sure that chromeos is able to catch it and '\
|
| - 'create a notifications for this message.'
|
| - self._SendText(self.mail_server, self.credentials['username'],
|
| - self.sim['mdn'], self.sim['carrier'], long_msg)
|
| - self.WaitForNotificationCount(1)
|
| -
|
| - # GetActiveNotifications throws an exception if the text message never
|
| - # arrives.
|
| - txt_msg = self.GetActiveNotifications()[0]
|
| - txt_msg = txt_windows[0]['content_url']
|
| - self.assertTrue(re.search(urllib.pathname2url(long_msg),
|
| - txt_msg), 'Invalid message was displayed. '
|
| - 'Expected "%s" but did not find it"' % long_msg)
|
| -
|
| -
|
| -if __name__ == '__main__':
|
| - pyauto_functional.Main()
|
|
|