| Index: chrome/test/functional/ntp.py
 | 
| diff --git a/chrome/test/functional/ntp.py b/chrome/test/functional/ntp.py
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..2be4960d0faba33cd2499a409b0c72a3ce1534ce
 | 
| --- /dev/null
 | 
| +++ b/chrome/test/functional/ntp.py
 | 
| @@ -0,0 +1,99 @@
 | 
| +#!/usr/bin/python
 | 
| +# Copyright (c) 2010 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.
 | 
| +
 | 
| +import os
 | 
| +
 | 
| +import pyauto_functional  # Must be imported before pyauto
 | 
| +import pyauto
 | 
| +
 | 
| +
 | 
| +class NTPTest(pyauto.PyUITest):
 | 
| +  """Test of the NTP."""
 | 
| +
 | 
| +  def Debug(self):
 | 
| +    """Test method for experimentation.
 | 
| +
 | 
| +    This method is not run automatically.
 | 
| +    """
 | 
| +    while True:
 | 
| +      raw_input('Interact with the browser and hit <enter> to dump NTP info...')
 | 
| +      print '*' * 20
 | 
| +      import pprint
 | 
| +      pp = pprint.PrettyPrinter(indent=2)
 | 
| +      pp.pprint(self._GetNTPInfo())
 | 
| +
 | 
| +  def __init__(self, methodName='runTest'):
 | 
| +    super(NTPTest, self).__init__(methodName)
 | 
| +
 | 
| +    # Create some dummy file urls we can use in the tests.
 | 
| +    filenames = ['title1.html', 'title2.html']
 | 
| +    titles = [u'', u'Title Of Awesomeness']
 | 
| +    urls = map(lambda name: self.GetFileURLForDataPath(name), filenames)
 | 
| +    self.PAGES = map(lambda url, title: {'url': url, 'title': title},
 | 
| +                     urls, titles)
 | 
| +
 | 
| +  def testFreshProfile(self):
 | 
| +    """Tests that the NTP with a fresh profile is correct"""
 | 
| +    thumbnails = self.GetNTPThumbnails()
 | 
| +    default_sites = self.GetNTPDefaultSites()
 | 
| +    self.assertEqual(len(default_sites), len(thumbnails))
 | 
| +    for thumbnail, default_site in zip(thumbnails, default_sites):
 | 
| +      self.assertEqual(thumbnail['url'], default_site)
 | 
| +    self.assertEqual(0, len(self.GetNTPRecentlyClosed()))
 | 
| +
 | 
| +  def testRemoveDefaultThumbnails(self):
 | 
| +    """Tests that the default thumbnails can be removed"""
 | 
| +    self.RemoveNTPDefaultThumbnails()
 | 
| +    self.assertFalse(self.GetNTPThumbnails())
 | 
| +    self.RestoreAllNTPThumbnails()
 | 
| +    self.assertEqual(len(self.GetNTPDefaultSites()),
 | 
| +                     len(self.GetNTPThumbnails()))
 | 
| +    self.RemoveNTPDefaultThumbnails()
 | 
| +    self.assertFalse(self.GetNTPThumbnails())
 | 
| +
 | 
| +  def testOneMostVisitedSite(self):
 | 
| +    """Tests that a site is added to the most visited sites"""
 | 
| +    self.RemoveNTPDefaultThumbnails()
 | 
| +    self.NavigateToURL(self.PAGES[1]['url'])
 | 
| +    self.assertEqual(self.PAGES[1]['url'], self.GetNTPThumbnails()[0]['url'])
 | 
| +    self.assertEqual(self.PAGES[1]['title'],
 | 
| +                     self.GetNTPThumbnails()[0]['title'])
 | 
| +
 | 
| +  def testOneRecentlyClosedTab(self):
 | 
| +    """Tests that closing a tab populates the recently closed tabs list"""
 | 
| +    self.RemoveNTPDefaultThumbnails()
 | 
| +    self.AppendTab(pyauto.GURL(self.PAGES[1]['url']))
 | 
| +    self.GetBrowserWindow(0).GetTab(1).Close(True)
 | 
| +    self.assertEqual(self.PAGES[1]['url'],
 | 
| +                     self.GetNTPRecentlyClosed()[0]['url'])
 | 
| +    self.assertEqual(self.PAGES[1]['title'],
 | 
| +                     self.GetNTPRecentlyClosed()[0]['title'])
 | 
| +
 | 
| +  def testMoveThumbnailBasic(self):
 | 
| +    """Tests moving a thumbnail to a different index"""
 | 
| +    self.RemoveNTPDefaultThumbnails()
 | 
| +    self.NavigateToURL(self.PAGES[0]['url'])
 | 
| +    self.NavigateToURL(self.PAGES[1]['url'])
 | 
| +    thumbnails = self.GetNTPThumbnails()
 | 
| +    self.MoveNTPThumbnail(thumbnails[0], 1)
 | 
| +    self.assertTrue(self.IsNTPThumbnailPinned(thumbnails[0]))
 | 
| +    self.assertFalse(self.IsNTPThumbnailPinned(thumbnails[1]))
 | 
| +    self.assertEqual(self.PAGES[0]['url'], self.GetNTPThumbnails()[1]['url'])
 | 
| +    self.assertEqual(1, self.GetNTPThumbnailIndex(thumbnails[0]))
 | 
| +
 | 
| +  def testPinningThumbnailBasic(self):
 | 
| +    """Tests that we can pin/unpin a thumbnail"""
 | 
| +    self.RemoveNTPDefaultThumbnails()
 | 
| +    self.NavigateToURL(self.PAGES[0]['url'])
 | 
| +    thumbnail1 = self.GetNTPThumbnails()[0]
 | 
| +    self.assertFalse(self.IsNTPThumbnailPinned(thumbnail1))
 | 
| +    self.PinNTPThumbnail(thumbnail1)
 | 
| +    self.assertTrue(self.IsNTPThumbnailPinned(thumbnail1))
 | 
| +    self.UnpinNTPThumbnail(thumbnail1)
 | 
| +    self.assertFalse(self.IsNTPThumbnailPinned(thumbnail1))
 | 
| +
 | 
| +
 | 
| +if __name__ == '__main__':
 | 
| +  pyauto_functional.Main()
 | 
| 
 |