diff --git a/tests/src/core/testqgscomposerpicture.cpp b/tests/src/core/testqgscomposerpicture.cpp
index ae6b6b526e8..88b1a90f010 100644
--- a/tests/src/core/testqgscomposerpicture.cpp
+++ b/tests/src/core/testqgscomposerpicture.cpp
@@ -60,8 +60,6 @@ class TestQgsComposerPicture : public QObject
     void pictureExpression();
     void pictureInvalidExpression();
 
-    void pictureRemoteUrl(); //test fetching picture from a url
-
   private:
     QgsComposition* mComposition;
     QgsComposerPicture* mComposerPicture;
@@ -386,19 +384,5 @@ void TestQgsComposerPicture::pictureInvalidExpression()
   mComposerPicture->setUsePictureExpression( false );
 }
 
-void TestQgsComposerPicture::pictureRemoteUrl()
-{
-  //test picture source via bad expression
-  mComposition->addComposerPicture( mComposerPicture );
-
-  mComposerPicture->setPicturePath( "http://www.qgis.org/en/_static/logo.png" );
-
-  QgsCompositionChecker checker( "composerpicture_remote", mComposition );
-  QVERIFY( checker.testComposition( mReport, 0, 0 ) );
-
-  mComposition->removeItem( mComposerPicture );
-  mComposerPicture->setUsePictureExpression( false );
-}
-
 QTEST_MAIN( TestQgsComposerPicture )
 #include "testqgscomposerpicture.moc"
diff --git a/tests/src/python/CMakeLists.txt b/tests/src/python/CMakeLists.txt
index 5594dd2b373..87a3433c985 100644
--- a/tests/src/python/CMakeLists.txt
+++ b/tests/src/python/CMakeLists.txt
@@ -27,10 +27,11 @@ ADD_PYTHON_TEST(PyQgsComposition test_qgscomposition.py)
 ADD_PYTHON_TEST(PyQgsAnalysis test_qgsanalysis.py)
 ADD_PYTHON_TEST(PyQgsColorScheme test_qgscolorscheme.py)
 ADD_PYTHON_TEST(PyQgsColorSchemeRegistry test_qgscolorschemeregistry.py)
-ADD_PYTHON_TEST(PyQgsComposerMap  test_qgscomposermap.py)
-ADD_PYTHON_TEST(PyQgsComposerMapGrid  test_qgscomposermapgrid.py)
-ADD_PYTHON_TEST(PyQgsComposerEffects  test_qgscomposereffects.py)
-ADD_PYTHON_TEST(PyQgsComposerShapes  test_qgscomposershapes.py)
+ADD_PYTHON_TEST(PyQgsComposerMap test_qgscomposermap.py)
+ADD_PYTHON_TEST(PyQgsComposerMapGrid test_qgscomposermapgrid.py)
+ADD_PYTHON_TEST(PyQgsComposerEffects test_qgscomposereffects.py)
+ADD_PYTHON_TEST(PyQgsComposerShapes test_qgscomposershapes.py)
+ADD_PYTHON_TEST(PyQgsComposerPicture test_qgscomposerpicture.py)
 ADD_PYTHON_TEST(PyQgsSymbolLayerV2 test_qgssymbollayerv2.py)
 ADD_PYTHON_TEST(PyQgsPoint test_qgspoint.py)
 ADD_PYTHON_TEST(PyQgsAtlasComposition test_qgsatlascomposition.py)
diff --git a/tests/src/python/test_qgscomposerpicture.py b/tests/src/python/test_qgscomposerpicture.py
new file mode 100644
index 00000000000..e2b13b231de
--- /dev/null
+++ b/tests/src/python/test_qgscomposerpicture.py
@@ -0,0 +1,91 @@
+# -*- coding: utf-8 -*-
+"""QGIS Unit tests for QgsComposerPicture.
+
+.. note:: This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+"""
+__author__ = '(C) 2015 by Nyall Dawson'
+__date__ = '02/07/2015'
+__copyright__ = 'Copyright 2015, The QGIS Project'
+# This will get replaced with a git SHA1 when you do a git archive
+__revision__ = '$Format:%H$'
+
+import qgis
+import os
+import sys
+import SocketServer
+import threading
+import SimpleHTTPServer
+from PyQt4.QtGui import QPainter, QColor
+from PyQt4.QtCore import QRectF, QCoreApplication
+
+from qgis.core import (QgsComposerPicture,
+                       QgsComposition,
+                       QgsMapSettings
+                       )
+from utilities import (unitTestDataPath,
+                       getQgisTestApp,
+                       TestCase,
+                       unittest
+                       )
+from qgscompositionchecker import QgsCompositionChecker
+
+QGISAPP, CANVAS, IFACE, PARENT = getQgisTestApp()
+TEST_DATA_DIR = unitTestDataPath()
+
+class TestQgsComposerPicture(TestCase):
+
+    @classmethod
+    def setUpClass(cls):
+        # Bring up a simple HTTP server, for remote picture tests
+        os.chdir( unitTestDataPath() + '' )
+        handler = SimpleHTTPServer.SimpleHTTPRequestHandler
+
+        cls.httpd = SocketServer.TCPServer(('localhost', 0), handler)
+        cls.port = cls.httpd.server_address[1]
+
+        cls.httpd_thread = threading.Thread( target=cls.httpd.serve_forever )
+        cls.httpd_thread.setDaemon( True )
+        cls.httpd_thread.start()
+
+    def __init__(self, methodName):
+        """Run once on class initialisation."""
+        unittest.TestCase.__init__(self, methodName)
+
+        TEST_DATA_DIR = unitTestDataPath()
+        self.pngImage = TEST_DATA_DIR + "/sample_image.png";
+
+        # create composition
+        self.mapSettings = QgsMapSettings()
+        self.composition = QgsComposition(self.mapSettings)
+        self.composition.setPaperSize(297, 210)
+
+        self.composerPicture = QgsComposerPicture( self.composition )
+        self.composerPicture.setPicturePath( self.pngImage )
+        self.composerPicture.setSceneRect( QRectF( 70, 70, 100, 100 ) )
+        self.composerPicture.setFrameEnabled( True )
+        self.composition.addComposerPicture(self.composerPicture)
+
+    def testResizeZoom(self):
+        """Test picture resize zoom mode."""
+        self.composerPicture.setResizeMode( QgsComposerPicture.Zoom )
+
+        checker = QgsCompositionChecker('composerpicture_resize_zoom', self.composition)
+        testResult, message = checker.testComposition()
+
+        assert testResult, message
+
+    def testRemoteImage(self):
+        """Test fetching remote picture."""
+        self.composerPicture.setPicturePath( 'http://localhost:' + str( TestQgsComposerPicture.port ) + '/qgis_local_server/logo.png' )
+
+        checker = QgsCompositionChecker('composerpicture_remote', self.composition)
+        testResult, message = checker.testComposition()
+
+        self.composerPicture.setPicturePath( self.pngImage )
+        assert testResult, message
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/tests/testdata/qgis_local_server/logo.png b/tests/testdata/qgis_local_server/logo.png
new file mode 100644
index 00000000000..9f92522b417
Binary files /dev/null and b/tests/testdata/qgis_local_server/logo.png differ