15d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)# Copyright 2014 The Chromium Authors. All rights reserved.
25d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
35d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)# found in the LICENSE file.
40529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
55d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)import shutil
65d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)import tempfile
75d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
85d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)from measurements import skpicture_printer
95d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)from telemetry.unittest import options_for_unittests
106e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)from telemetry.unittest import page_test_test_case
11116680a4aac90f2aa7413d9095a592090648e557Ben Murdochfrom telemetry.unittest import test
125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
146e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)class SkpicturePrinterUnitTest(page_test_test_case.PageTestTestCase):
155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  def setUp(self):
165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    self._options = options_for_unittests.GetCopy()
175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    self._options.skp_outdir = tempfile.mkdtemp('_skp_test')
185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  def tearDown(self):
205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    shutil.rmtree(self._options.skp_outdir)
215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
220529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  @test.Disabled('android')
235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  def testSkpicturePrinter(self):
245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    ps = self.CreatePageSetFromFileInUnittestDataDir('blank.html')
255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    measurement = skpicture_printer.SkpicturePrinter()
265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    results = self.RunMeasurement(measurement, ps, options=self._options)
275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    # Picture printing is not supported on all platforms.
295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    if results.failures:
305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      assert 'not supported' in results.failures[0].exc_info[1].message
315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      return
325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    saved_picture_count = results.FindAllPageSpecificValuesNamed(
345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        'saved_picture_count')
355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    self.assertEquals(len(saved_picture_count), 1)
365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    self.assertGreater(saved_picture_count[0].GetRepresentativeNumber(), 0)
37