Hello community, here is the log from the commit of package libmygpo-qt for openSUSE:Factory checked in at 2018-02-28 20:00:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libmygpo-qt (Old) and /work/SRC/openSUSE:Factory/.libmygpo-qt.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libmygpo-qt" Wed Feb 28 20:00:07 2018 rev:14 rq:580241 version:1.0.9 Changes: -------- --- /work/SRC/openSUSE:Factory/libmygpo-qt/libmygpo-qt.changes 2013-04-22 14:08:58.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.libmygpo-qt.new/libmygpo-qt.changes 2018-02-28 20:00:13.305413203 +0100 @@ -1,0 +2,14 @@ +Mon Feb 26 09:09:44 UTC 2018 - [email protected] + +- Update to 1.0.9: + * Different header installation directories for the qt4 & qt5 + version + * Bugfix: Top level include_install_dir is now respected + * Support for QJson 0.7 + * Default to https instead of http + * Bugfix: Allow setting the server URL + Changes in 1.0.8: + * Support for building the library with Qt5 + * Support for the "Get All Subscriptions" API endpoint + +------------------------------------------------------------------- Old: ---- libmygpo-qt.1.0.7.tar.gz New: ---- libmygpo-qt.1.0.9.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libmygpo-qt.spec ++++++ --- /var/tmp/diff_new_pack.mTOkOt/_old 2018-02-28 20:00:14.933354298 +0100 +++ /var/tmp/diff_new_pack.mTOkOt/_new 2018-02-28 20:00:14.941354009 +0100 @@ -17,7 +17,7 @@ Name: libmygpo-qt -Version: 1.0.7 +Version: 1.0.9 Release: 0 Summary: Qt Library that wraps the gpodder.net Web API License: LGPL-2.1+ ++++++ libmygpo-qt.1.0.7.tar.gz -> libmygpo-qt.1.0.9.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/CMakeLists.txt new/libmygpo-qt.1.0.9/CMakeLists.txt --- old/libmygpo-qt.1.0.7/CMakeLists.txt 2013-01-19 12:48:52.000000000 +0100 +++ new/libmygpo-qt.1.0.9/CMakeLists.txt 2016-09-16 13:02:54.000000000 +0200 @@ -5,20 +5,56 @@ set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules) set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII" ) -# Don't use absolute path in Mygpo-qtTargets-$buildType.cmake -# (This will have no effect with CMake < 2.8) -set(QT_USE_IMPORTED_TARGETS TRUE) +option(BUILD_WITH_QT4 "Build libmygpo-qt with Qt4 no matter if Qt5 was found" ON) -find_package( Qt4 COMPONENTS QtCore QtNetwork QtTest REQUIRED ) -set( QT_DONT_USE_QTGUI TRUE ) +if( NOT BUILD_WITH_QT4 ) + find_package(Qt5Core QUIET) + if( Qt5Core_DIR ) + message(STATUS "Found Qt5! Be aware that Qt5-support is still experimental and not officially supported!") + set(MYGPO_QT_VERSION_SUFFIX 5) + + macro(qt_wrap_cpp) + qt5_wrap_cpp(${ARGN}) + endmacro() + endif() + + # pkg-config names of QtCore and QtNetwork are Qt5Core and Qt5Network for + # Qt5 + set(MYGPO_QT_MAJOR_VERSION "5") + set(MYGPO_QT4_QJSON_DEP "") +endif() + +if( NOT Qt5Core_DIR ) + message(STATUS "Could not find Qt5, searching for Qt4 instead...") + if( MYGPO_BUILD_TESTS ) + find_package( Qt4 COMPONENTS QtCore QtNetwork QtTest REQUIRED ) + else( MYGPO_BUILD_TESTS ) + find_package( Qt4 COMPONENTS QtCore QtNetwork REQUIRED ) + endif() + set( QT_DONT_USE_QTGUI TRUE ) + include( ${QT_USE_FILE} ) -find_package(QJSON REQUIRED) + macro(qt5_use_modules) + endmacro() -include( ${QT_USE_FILE} ) + macro(qt_wrap_cpp) + qt4_wrap_cpp(${ARGN}) + endmacro() + + set(MYGPO_QT_MAJOR_VERSION "") + set(MYGPO_QT4_QJSON_DEP "Requires.private: QJson") + + # QJson is only required for Qt4 + find_package(QJSON REQUIRED) +endif() + +# Don't use absolute path in Mygpo-qtTargets-$buildType.cmake +# (This will have no effect with CMake < 2.8) +# set(QT_USE_IMPORTED_TARGETS TRUE) set( MYGPO_QT_VERSION_MAJOR "1" ) set( MYGPO_QT_VERSION_MINOR "0" ) -set( MYGPO_QT_VERSION_PATCH "7" ) +set( MYGPO_QT_VERSION_PATCH "9" ) set( MYGPO_QT_VERSION "${MYGPO_QT_VERSION_MAJOR}.${MYGPO_QT_VERSION_MINOR}.${MYGPO_QT_VERSION_PATCH}" ) set( MYGPO_QT_SONAME "${MYGPO_QT_VERSION_MAJOR}") @@ -62,7 +98,7 @@ set(LIB_SUFFIX "" CACHE STRING "The directories where to install libraries to") set(LIB_INSTALL_DIR lib${LIB_SUFFIX} ) set(LIB_DIR_PKGCONF "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}") -set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include/mygpo-qt" CACHE PATH "The directory the headers are installed in") +set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include/mygpo-qt${MYGPO_QT_VERSION_SUFFIX}" CACHE PATH "The directory the headers are installed in") set(CMAKECONFIG_INSTALL_DIR ${LIB_INSTALL_DIR}/cmake/mygpo-qt ) if( APPLE ) @@ -97,12 +133,14 @@ FIND_PACKAGE(PkgConfig) IF (PKG_CONFIG_FOUND) CONFIGURE_FILE (${CMAKE_CURRENT_SOURCE_DIR}/libmygpo-qt.pc.in - ${CMAKE_CURRENT_BINARY_DIR}/libmygpo-qt.pc + ${CMAKE_CURRENT_BINARY_DIR}/libmygpo-qt${MYGPO_QT_VERSION_SUFFIX}.pc @ONLY) - INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/libmygpo-qt.pc DESTINATION lib${LIB_SUFFIX}/pkgconfig) + INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/libmygpo-qt${MYGPO_QT_VERSION_SUFFIX}.pc DESTINATION lib${LIB_SUFFIX}/pkgconfig) ENDIF (PKG_CONFIG_FOUND) ENDIF (NOT WIN32) +set(MYGPO_QT_TARGET_NAME mygpo-qt${MYGPO_QT_VERSION_SUFFIX} CACHE INTERNAL "" FORCE ) + add_subdirectory( src ) if(MYGPO_BUILD_TESTS) add_subdirectory( tests ) @@ -114,7 +152,7 @@ # This file contains add_library(bar IMPORTED) statements for each target in the export set, so # when loaded later on cmake will create "imported" library targets from these, which can be used # in many ways in the same way as a normal library target created via a normal add_library(). -install(EXPORT mygpo-qtExport DESTINATION ${CMAKECONFIG_INSTALL_DIR} FILE Mygpo-qtTargets.cmake ) +install(EXPORT ${MYGPO_QT_TARGET_NAME}Export DESTINATION ${CMAKECONFIG_INSTALL_DIR} FILE Mygpo-qt${MYGPO_QT_VERSION_SUFFIX}Targets.cmake ) # figure out the relative path from the installed Config.cmake file to the install prefix (which may be at # runtime different from the chosen CMAKE_INSTALL_PREFIX if under Windows the package was installed anywhere) @@ -124,12 +162,12 @@ # Create a BarConfig.cmake file. <name>Config.cmake files are searched by find_package() # automatically. We configure that file so that we can put any information we want in it, # e.g. version numbers, include directories, etc. -configure_file(Mygpo-qtConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/Mygpo-qtConfig.cmake @ONLY ) +configure_file(Mygpo-qtConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/Mygpo-qt${MYGPO_QT_VERSION_SUFFIX}Config.cmake @ONLY ) # Additionally, when cmake has found a BarConfig.cmake, it can check for a BarConfigVersion.cmake # in the same directory when figuring out the version of the package when a version # has been specified in the find_package() call, e.g. find_package(Bar 1.0) -configure_file(Mygpo-qtConfigVersion.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/Mygpo-qtConfigVersion.cmake @ONLY ) +configure_file(Mygpo-qtConfigVersion.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/Mygpo-qt${MYGPO_QT_VERSION_SUFFIX}ConfigVersion.cmake @ONLY ) # Install these two files into the same directory as the generated exports-file. -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Mygpo-qtConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/Mygpo-qtConfigVersion.cmake DESTINATION ${CMAKECONFIG_INSTALL_DIR} ) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Mygpo-qt${MYGPO_QT_VERSION_SUFFIX}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/Mygpo-qt${MYGPO_QT_VERSION_SUFFIX}ConfigVersion.cmake DESTINATION ${CMAKECONFIG_INSTALL_DIR} ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/README new/libmygpo-qt.1.0.9/README --- old/libmygpo-qt.1.0.7/README 2013-04-13 11:53:12.000000000 +0200 +++ new/libmygpo-qt.1.0.9/README 2016-09-16 13:02:54.000000000 +0200 @@ -6,7 +6,7 @@ === Copyright & License === -Copyright 2010 - 2013 Stefan Derkits ([email protected]) , Christian Wagner ([email protected]) & Felix Winter ([email protected]) +Copyright 2010 - 2014 Stefan Derkits ([email protected]) , Christian Wagner ([email protected]) & Felix Winter ([email protected]) See COPYING File for License @@ -20,6 +20,16 @@ -) Cmake 2.6 or higher -) QJson +=== Qt5 Support === + +libmygpo-qt version 1.0.8 supports also building the library with Qt5. The API is the same as in the Qt4 library. To build the library with Qt5 add "-DBUILD_WITH_QT4=OFF" to your CMake +command line. Please note that Qt5 support is still experimental. If you find anything to not work with Qt5, please report a bug. + +==== Qt5 Requirements === + +-) CMake 2.8.9 or higher +-) Qt 5.2 or higher + === Links === Homepage: http://wiki.gpodder.org/wiki/Libmygpo-qt diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/example/Makefile new/libmygpo-qt.1.0.9/example/Makefile --- old/libmygpo-qt.1.0.7/example/Makefile 2012-07-20 13:58:50.000000000 +0200 +++ new/libmygpo-qt.1.0.9/example/Makefile 2016-09-16 13:02:54.000000000 +0200 @@ -1,6 +1,6 @@ CC=g++ -CFLAGS=-c -g -Wall $(shell pkg-config QtGui QtCore QtNetwork libmygpo-qt --cflags) -LIBS= $(shell pkg-config QtGui QtCore QtNetwork libmygpo-qt --libs) +CFLAGS=-c -g -Wall $(shell pkg-config libmygpo-qt --cflags) +LIBS= $(shell pkg-config libmygpo-qt --libs) SRCDIR=src all: main @@ -8,6 +8,10 @@ main: $(SRCDIR)/main.o $(CC) $(SRCDIR)/main.o -o main $(LIBS) +qt5: + $(CC) -c -I/home/horrendus/kde/include/mygpo-qt -I/usr/include/qt5/QtCore -I/usr/include/qt5 -I/usr/include/qt5/QtNetwork -fPIC $(SRCDIR)/main.cpp -o $(SRCDIR)/main_qt5.o + $(CC) $(SRCDIR)/main_qt5.o -o main -L/home/horrendus/kde/lib -lmygpo-qt -lQt5Network -lQt5Core + $(SRCDIR)/main.o: $(SRCDIR)/main.cpp $(CC) $(CFLAGS) $(SRCDIR)/main.cpp -o $(SRCDIR)/main.o diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/example/src/.kdev_include_paths new/libmygpo-qt.1.0.9/example/src/.kdev_include_paths --- old/libmygpo-qt.1.0.7/example/src/.kdev_include_paths 2012-07-20 13:58:49.000000000 +0200 +++ new/libmygpo-qt.1.0.9/example/src/.kdev_include_paths 1970-01-01 01:00:00.000000000 +0100 @@ -1,5 +0,0 @@ -/home/t95012/src/libmygpo-qt/example/src/ -home/t95012/kde/include/mygpo-qt/ -/usr/include/qt4/QtCore/ -/usr/include/qt4/QtGui/ -/usr/include/qt4/QtNetwork/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/example/src/main.cpp new/libmygpo-qt.1.0.9/example/src/main.cpp --- old/libmygpo-qt.1.0.7/example/src/main.cpp 2013-04-13 11:52:16.000000000 +0200 +++ new/libmygpo-qt.1.0.9/example/src/main.cpp 2016-09-16 13:02:54.000000000 +0200 @@ -21,8 +21,8 @@ ***************************************************************************/ #include <QCoreApplication> -#include <QtGui> #include <QEventLoop> +#include <QDebug> #include <PodcastList.h> #include <EpisodeList.h> @@ -462,7 +462,17 @@ qDebug() << "TagList2 size: " << tagList2->list().size(); qDebug() << ""; - qDebug() << "AddRemoveResult"; + + reply = req.downloadSubscriptionsJson( "ase23" ); + + loop.connect(reply, SIGNAL(finished()), SLOT(quit())); + loop.connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), SLOT(quit())); + loop.exec(); + + printTitle(QLatin1String("Downloading subscriptions (JSON) [subscriptionsJson(\"ase23\")]")); + qDebug() << reply->readAll(); + qDebug(); + //qDebug() << "AddRemoveResult"; /*QList<QUrl> add2; QList<QUrl> remove2; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/libmygpo-qt.pc.in new/libmygpo-qt.1.0.9/libmygpo-qt.pc.in --- old/libmygpo-qt.1.0.7/libmygpo-qt.pc.in 2013-01-19 12:48:52.000000000 +0100 +++ new/libmygpo-qt.1.0.9/libmygpo-qt.pc.in 2016-09-16 13:02:54.000000000 +0200 @@ -3,11 +3,11 @@ libdir=@LIB_DIR_PKGCONF@ includedir=@INCLUDE_INSTALL_DIR@ -Name: libmygpo-qt +Name: libmygpo-qt@MYGPO_QT_VERSION_SUFFIX@ Description: libmygpo-qt is a C++/Qt Library that wraps the gpodder.net WebAPI URL: http://wiki.gpodder.org/wiki/Libmygpo-qt Version: @MYGPO_QT_VERSION@ -Requires: QtCore QtNetwork -Requires.private: QJson -Libs: -L${libdir} -lmygpo-qt -Cflags: -I${includedir} \ No newline at end of file +Requires: Qt@MYGPO_QT_MAJOR_VERSION@Core Qt@MYGPO_QT_MAJOR_VERSION@Network +@MYGPO_QT4_QJSON_DEP@ +Libs: -L${libdir} -lmygpo-qt@MYGPO_QT_VERSION_SUFFIX@ +Cflags: -I${includedir} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/src/AddRemoveResult.cpp new/libmygpo-qt.1.0.9/src/AddRemoveResult.cpp --- old/libmygpo-qt.1.0.7/src/AddRemoveResult.cpp 2013-04-13 11:36:25.000000000 +0200 +++ new/libmygpo-qt.1.0.9/src/AddRemoveResult.cpp 2016-09-16 13:02:54.000000000 +0200 @@ -20,11 +20,11 @@ * USA * ***************************************************************************/ -#include <parser.h> - #include "AddRemoveResult.h" #include "AddRemoveResult_p.h" +#include "qjsonwrapper/Json.h" + using namespace mygpo; AddRemoveResultPrivate::AddRemoveResultPrivate( AddRemoveResult* qq, QNetworkReply* reply ) : q( qq ), m_reply( reply ), m_error( QNetworkReply::NoError ) @@ -64,7 +64,6 @@ bool AddRemoveResultPrivate::parse( const QVariant& data ) { - QJson::Parser parser; if( !data.canConvert( QVariant::Map ) ) return false; QVariantMap resultMap = data.toMap(); @@ -78,9 +77,8 @@ bool AddRemoveResultPrivate::parse( const QByteArray& data ) { - QJson::Parser parser; bool ok; - QVariant variant = parser.parse( data, &ok ); + QVariant variant = QJsonWrapper::parseJson( data, &ok ); if( ok ) { ok = ( parse( variant ) ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/src/ApiRequest.cpp new/libmygpo-qt.1.0.9/src/ApiRequest.cpp --- old/libmygpo-qt.1.0.7/src/ApiRequest.cpp 2013-04-13 11:36:43.000000000 +0200 +++ new/libmygpo-qt.1.0.9/src/ApiRequest.cpp 2016-09-16 13:02:54.000000000 +0200 @@ -1,6 +1,6 @@ /*************************************************************************** * This file is part of libmygpo-qt * -* Copyright (c) 2010 - 2013 Stefan Derkits <[email protected]> * +* Copyright (c) 2010 - 2014 Stefan Derkits <[email protected]> * * Copyright (c) 2010 - 2011 Christian Wagner <[email protected]> * * Copyright (c) 2010 - 2011 Felix Winter <[email protected]> * * * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/src/ApiRequest.h new/libmygpo-qt.1.0.9/src/ApiRequest.h --- old/libmygpo-qt.1.0.7/src/ApiRequest.h 2013-04-13 12:07:43.000000000 +0200 +++ new/libmygpo-qt.1.0.9/src/ApiRequest.h 2016-09-16 13:02:54.000000000 +0200 @@ -1,6 +1,6 @@ /*************************************************************************** * This file is part of libmygpo-qt * -* Copyright (c) 2010 - 2013 Stefan Derkits <[email protected]> * +* Copyright (c) 2010 - 2014 Stefan Derkits <[email protected]> * * Copyright (c) 2010 - 2011 Christian Wagner <[email protected]> * * Copyright (c) 2010 - 2011 Felix Winter <[email protected]> * * * @@ -84,7 +84,7 @@ */ QNetworkReply* suggestionsOpml( uint count ); - QNetworkReply* downloadSubscriptionsOpml( const QString& username, const QString& device ); + QNetworkReply* downloadSubscriptionsOpml( const QString& username, const QString& device = QString() ); /** * Returns the TXT Result for the Simple API Call "Downloading Podcast Toplists" @@ -111,7 +111,7 @@ */ QNetworkReply* suggestionsTxt( uint count ); - QNetworkReply* downloadSubscriptionsTxt( const QString& username, const QString& device ); + QNetworkReply* downloadSubscriptionsTxt( const QString& username, const QString& device = QString() ); /** * Returns the TXT Result for the Simple API Call "Downloading Podcast Toplists" @@ -153,9 +153,9 @@ * */ PodcastListPtr suggestions( uint count ); - - QNetworkReply* downloadSubscriptionsJson( const QString& username, const QString& device ); - + + QNetworkReply* downloadSubscriptionsJson( const QString& username, const QString& device = QString() ); + //ADVANCED API /** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/src/CMakeLists.txt new/libmygpo-qt.1.0.9/src/CMakeLists.txt --- old/libmygpo-qt.1.0.7/src/CMakeLists.txt 2013-01-19 12:48:52.000000000 +0100 +++ new/libmygpo-qt.1.0.9/src/CMakeLists.txt 2016-09-16 13:02:54.000000000 +0200 @@ -1,5 +1,5 @@ -include_directories( ${QT_INCLUDES} ${QJSON_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ) +include_directories( ${QJSON_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ) set ( LIBMYGPO_QT_SRC Config.cpp @@ -21,6 +21,7 @@ DeviceUpdates.cpp DeviceList.cpp Device.cpp + qjsonwrapper/Json.cpp ) set ( LIBMYGPO_QT_MOC_H @@ -74,12 +75,14 @@ AddRemoveResult.h ) -QT4_WRAP_CPP(LIBMYGPO_QT_MOC_SRC ${LIBMYGPO_QT_MOC_H} ) +QT_WRAP_CPP(LIBMYGPO_QT_MOC_SRC ${LIBMYGPO_QT_MOC_H} ) -add_library( mygpo-qt SHARED ${LIBMYGPO_QT_SRC} ${LIBMYGPO_QT_MOC_SRC} ) +add_library( ${MYGPO_QT_TARGET_NAME} SHARED ${LIBMYGPO_QT_SRC} ${LIBMYGPO_QT_MOC_SRC} ) -target_link_libraries( mygpo-qt ${QJSON_LIBRARIES} ${QT_QTCORE_LIBRARY} ${QT_QTNETWORK_LIBRARY} ) -set_target_properties( mygpo-qt PROPERTIES VERSION ${MYGPO_QT_VERSION} SOVERSION ${MYGPO_QT_SONAME} DEFINE_SYMBOL MYGPO_MAKEDLL) -install( TARGETS mygpo-qt EXPORT mygpo-qtExport DESTINATION lib${LIB_SUFFIX} ) +target_link_libraries( ${MYGPO_QT_TARGET_NAME} ${QJSON_LIBRARIES} ${QT_QTCORE_LIBRARY} ${QT_QTNETWORK_LIBRARY} ) +set_target_properties( ${MYGPO_QT_TARGET_NAME} PROPERTIES VERSION ${MYGPO_QT_VERSION} SOVERSION ${MYGPO_QT_SONAME} DEFINE_SYMBOL MYGPO_MAKEDLL) +qt5_use_modules( ${MYGPO_QT_TARGET_NAME} Core Network ) -install( FILES ${LIBMYGPO_QT_INSTALL_H} DESTINATION include/mygpo-qt COMPONENT Devel ) +install( TARGETS ${MYGPO_QT_TARGET_NAME} EXPORT ${MYGPO_QT_TARGET_NAME}Export DESTINATION ${LIB_INSTALL_DIR} ) + +install( FILES ${LIBMYGPO_QT_INSTALL_H} DESTINATION ${INCLUDE_INSTALL_DIR} COMPONENT Devel ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/src/Config.cpp new/libmygpo-qt.1.0.9/src/Config.cpp --- old/libmygpo-qt.1.0.7/src/Config.cpp 2013-04-13 11:37:45.000000000 +0200 +++ new/libmygpo-qt.1.0.9/src/Config.cpp 2016-09-16 13:02:54.000000000 +0200 @@ -29,7 +29,7 @@ Config* Config::s_instance = 0; -ConfigPrivate::ConfigPrivate( Config* qq ) : q( qq ), m_mygpoBaseUrl( QUrl( QLatin1String( "http://gpodder.net" ) ) ), m_userAgentPrefix( QString() ) +ConfigPrivate::ConfigPrivate( Config* qq ) : q( qq ), m_mygpoBaseUrl( QUrl( QLatin1String( "https://gpodder.net" ) ) ), m_userAgentPrefix( QString() ) { } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/src/DeviceList.cpp new/libmygpo-qt.1.0.9/src/DeviceList.cpp --- old/libmygpo-qt.1.0.7/src/DeviceList.cpp 2012-07-20 13:58:51.000000000 +0200 +++ new/libmygpo-qt.1.0.9/src/DeviceList.cpp 2016-09-16 13:02:54.000000000 +0200 @@ -22,7 +22,7 @@ #include "DeviceList_p.h" -#include <parser.h> +#include "qjsonwrapper/Json.h" using namespace mygpo; @@ -73,9 +73,8 @@ bool DeviceListPrivate::parse( const QByteArray& data ) { - QJson::Parser parser; bool ok; - QVariant variant = parser.parse( data, &ok ); + QVariant variant = QJsonWrapper::parseJson( data, &ok ); if( ok ) { ok = ( parse( variant ) ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/src/DeviceSyncResult.cpp new/libmygpo-qt.1.0.9/src/DeviceSyncResult.cpp --- old/libmygpo-qt.1.0.7/src/DeviceSyncResult.cpp 2013-04-13 11:44:06.000000000 +0200 +++ new/libmygpo-qt.1.0.9/src/DeviceSyncResult.cpp 2016-09-16 13:02:54.000000000 +0200 @@ -20,7 +20,7 @@ #include "DeviceSyncResult_p.h" -#include <parser.h> +#include "qjsonwrapper/Json.h" using namespace mygpo; @@ -85,9 +85,8 @@ bool DeviceSyncResultPrivate::parse( const QByteArray& data ) { - QJson::Parser parser; bool ok; - QVariant variant = parser.parse( data, &ok ); + QVariant variant = QJsonWrapper::parseJson( data, &ok ); if( ok ) { ok = ( parse( variant ) ); @@ -108,7 +107,7 @@ emit q->parseError(); } } - m_reply->deleteLater(); + m_reply->deleteLater(); } void DeviceSyncResultPrivate::error( QNetworkReply::NetworkError error ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/src/DeviceUpdates.cpp new/libmygpo-qt.1.0.9/src/DeviceUpdates.cpp --- old/libmygpo-qt.1.0.7/src/DeviceUpdates.cpp 2013-04-13 11:45:45.000000000 +0200 +++ new/libmygpo-qt.1.0.9/src/DeviceUpdates.cpp 2016-09-16 13:02:54.000000000 +0200 @@ -22,7 +22,7 @@ #include "DeviceUpdates_p.h" -#include <parser.h> +#include "qjsonwrapper/Json.h" using namespace mygpo; @@ -102,9 +102,8 @@ bool DeviceUpdatesPrivate::parse( const QByteArray& data ) { - QJson::Parser parser; bool ok; - QVariant variant = parser.parse( data, &ok ); + QVariant variant = QJsonWrapper::parseJson( data, &ok ); if( ok ) { ok = ( parse( variant ) ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/src/Episode.cpp new/libmygpo-qt.1.0.9/src/Episode.cpp --- old/libmygpo-qt.1.0.7/src/Episode.cpp 2013-04-13 11:46:03.000000000 +0200 +++ new/libmygpo-qt.1.0.9/src/Episode.cpp 2016-09-16 13:02:54.000000000 +0200 @@ -22,7 +22,7 @@ #include "Episode_p.h" -#include <parser.h> +#include "qjsonwrapper/Json.h" using namespace mygpo; @@ -115,9 +115,8 @@ bool EpisodePrivate::parse ( const QByteArray& data ) { - QJson::Parser parser; bool ok; - QVariant variant = parser.parse ( data, &ok ); + QVariant variant = QJsonWrapper::parseJson( data, &ok ); if ( ok ) { if ( !parse ( variant ) ) return false; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/src/EpisodeAction.cpp new/libmygpo-qt.1.0.9/src/EpisodeAction.cpp --- old/libmygpo-qt.1.0.7/src/EpisodeAction.cpp 2013-04-13 11:46:19.000000000 +0200 +++ new/libmygpo-qt.1.0.9/src/EpisodeAction.cpp 2016-09-16 13:02:54.000000000 +0200 @@ -22,7 +22,7 @@ #include "EpisodeAction_p.h" -#include <parser.h> +#include "qjsonwrapper/Json.h" using namespace mygpo; @@ -163,9 +163,8 @@ bool EpisodeActionPrivate::parse( const QByteArray& data ) { - QJson::Parser parser; bool ok; - QVariant variant = parser.parse( data, &ok ); + QVariant variant = QJsonWrapper::parseJson( data, &ok ); if( ok ) { if( !parse( variant ) ) return false; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/src/EpisodeActionList.cpp new/libmygpo-qt.1.0.9/src/EpisodeActionList.cpp --- old/libmygpo-qt.1.0.7/src/EpisodeActionList.cpp 2013-04-13 11:46:38.000000000 +0200 +++ new/libmygpo-qt.1.0.9/src/EpisodeActionList.cpp 2016-09-16 13:02:54.000000000 +0200 @@ -22,7 +22,7 @@ #include "EpisodeActionList_p.h" -#include <parser.h> +#include "qjsonwrapper/Json.h" using namespace mygpo; @@ -88,9 +88,8 @@ bool EpisodeActionListPrivate::parse( const QByteArray& data ) { - QJson::Parser parser; bool ok; - QVariant variant = parser.parse( data, &ok ); + QVariant variant = QJsonWrapper::parseJson( data, &ok ); if( ok ) { ok = ( parse( variant ) ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/src/EpisodeList.cpp new/libmygpo-qt.1.0.9/src/EpisodeList.cpp --- old/libmygpo-qt.1.0.7/src/EpisodeList.cpp 2013-04-13 11:46:56.000000000 +0200 +++ new/libmygpo-qt.1.0.9/src/EpisodeList.cpp 2016-09-16 13:02:54.000000000 +0200 @@ -22,7 +22,7 @@ #include "EpisodeList_p.h" -#include <parser.h> +#include "qjsonwrapper/Json.h" using namespace mygpo; @@ -71,9 +71,8 @@ bool EpisodeListPrivate::parse( const QByteArray& data ) { - QJson::Parser parser; bool ok; - QVariant variant = parser.parse( data, &ok ); + QVariant variant = QJsonWrapper::parseJson( data, &ok ); if( ok ) { ok = ( parse( variant ) ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/src/JsonCreator.cpp new/libmygpo-qt.1.0.9/src/JsonCreator.cpp --- old/libmygpo-qt.1.0.7/src/JsonCreator.cpp 2013-04-13 11:47:19.000000000 +0200 +++ new/libmygpo-qt.1.0.9/src/JsonCreator.cpp 2016-09-16 13:02:54.000000000 +0200 @@ -20,47 +20,44 @@ * USA * ***************************************************************************/ -#include <QVariant> +//#include <QVariant> #include <QList> #include <QUrl> #include <QString> #include <QDateTime> -#include <serializer.h> - #include "JsonCreator.h" +#include "qjsonwrapper/Json.h" + using namespace mygpo; static qulonglong c_maxlonglong = (2^64)-1; QByteArray JsonCreator::addRemoveSubsToJSON( const QList< QUrl >& add, const QList< QUrl >& remove ) { - QJson::Serializer serializer; QVariantMap jsonData; QVariant addVar( urlListToQVariantList( add ) ); QVariant removeVar( urlListToQVariantList( remove ) ); jsonData.insert( QString( QLatin1String( "add" ) ), addVar ); jsonData.insert( QString( QLatin1String( "remove" ) ), removeVar ); - QByteArray jsonByteArray = serializer.serialize( QVariant( jsonData ) ); + QByteArray jsonByteArray = QJsonWrapper::toJson( QVariant( jsonData ) ); return jsonByteArray; } QByteArray JsonCreator::saveSettingsToJSON( const QMap< QString, QVariant >& set, const QList< QString >& remove ) { - QJson::Serializer serializer; QVariantMap jsonData; //QVariant setVar(stringMapToQVariantMap(set)); QVariant removeVar( stringListToQVariantList( remove ) ); jsonData.insert( QString( QLatin1String( "set" ) ), set ); jsonData.insert( QString( QLatin1String( "remove" ) ), removeVar ); - QByteArray jsonByteArray = serializer.serialize( QVariant( jsonData ) ); + QByteArray jsonByteArray = QJsonWrapper::toJson( QVariant( jsonData ) ); return jsonByteArray; } QByteArray JsonCreator::episodeActionListToJSON( const QList<EpisodeActionPtr>& episodeActions ) { - QJson::Serializer serializer; QVariantList jsonData; foreach( const EpisodeActionPtr episodeAction, episodeActions ) @@ -68,19 +65,18 @@ jsonData.append( episodeActionToQVariantMap( episodeAction ) ); } - QByteArray jsonByteArray = serializer.serialize( QVariant( jsonData ) ); + QByteArray jsonByteArray = QJsonWrapper::toJson( QVariant( jsonData ) ); return jsonByteArray; } QByteArray JsonCreator::renameDeviceStringToJSON( const QString& caption, const QString& type ) { - QJson::Serializer serializer; QVariantMap jsonData; QVariant captionVar( caption ); QVariant typeVar( type ); jsonData.insert( QString( QLatin1String( "caption" ) ), captionVar ); jsonData.insert( QString( QLatin1String( "type" ) ), typeVar ); - QByteArray jsonByteArray = serializer.serialize( QVariant( jsonData ) ); + QByteArray jsonByteArray = QJsonWrapper::toJson( QVariant( jsonData ) ); return jsonByteArray; } @@ -130,7 +126,7 @@ jsonStr.append(syncVar); jsonStr.append(QLatin1String(" ,\"stop-synchronize\" : ")); jsonStr.append(stopVar); - jsonStr.append(QLatin1String(" }\n")); + jsonStr.append(QLatin1String(" }")); return jsonStr.toLocal8Bit(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/src/Podcast.cpp new/libmygpo-qt.1.0.9/src/Podcast.cpp --- old/libmygpo-qt.1.0.7/src/Podcast.cpp 2013-04-13 11:47:36.000000000 +0200 +++ new/libmygpo-qt.1.0.9/src/Podcast.cpp 2016-09-16 13:02:54.000000000 +0200 @@ -22,7 +22,7 @@ #include "Podcast_p.h" -#include <parser.h> +#include "qjsonwrapper/Json.h" using namespace mygpo; @@ -181,9 +181,8 @@ bool PodcastPrivate::parse( const QByteArray& data ) { - QJson::Parser parser; bool ok; - QVariant variant = parser.parse( data, &ok ); + QVariant variant = QJsonWrapper::parseJson( data, &ok ); if ( ok ) { if ( !parse( variant ) ) return false; @@ -197,8 +196,6 @@ void PodcastPrivate::parseData() { - //parsen und signal senden - QJson::Parser parser; if ( parse( m_reply->readAll( ) ) ) { emit q->finished(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/src/PodcastList.cpp new/libmygpo-qt.1.0.9/src/PodcastList.cpp --- old/libmygpo-qt.1.0.7/src/PodcastList.cpp 2013-04-13 11:48:52.000000000 +0200 +++ new/libmygpo-qt.1.0.9/src/PodcastList.cpp 2016-09-16 13:02:54.000000000 +0200 @@ -22,7 +22,7 @@ #include "PodcastList_p.h" -#include <parser.h> +#include "qjsonwrapper/Json.h" using namespace mygpo; @@ -71,9 +71,8 @@ bool PodcastListPrivate::parse( const QByteArray& data ) { - QJson::Parser parser; bool ok; - QVariant variant = parser.parse( data, &ok ); + QVariant variant = QJsonWrapper::parseJson( data, &ok ); if( ok ) { ok = ( parse( variant ) ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/src/RequestHandler.cpp new/libmygpo-qt.1.0.9/src/RequestHandler.cpp --- old/libmygpo-qt.1.0.7/src/RequestHandler.cpp 2013-04-13 11:49:24.000000000 +0200 +++ new/libmygpo-qt.1.0.9/src/RequestHandler.cpp 2016-09-16 13:02:54.000000000 +0200 @@ -77,5 +77,5 @@ void RequestHandler::addUserAgent( QNetworkRequest &request ) { - request.setRawHeader("User-Agent", Config::instance()->userAgent().toAscii() ); + request.setRawHeader("User-Agent", Config::instance()->userAgent().toLatin1() ); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/src/Settings.cpp new/libmygpo-qt.1.0.9/src/Settings.cpp --- old/libmygpo-qt.1.0.7/src/Settings.cpp 2013-04-13 11:49:36.000000000 +0200 +++ new/libmygpo-qt.1.0.9/src/Settings.cpp 2016-09-16 13:02:54.000000000 +0200 @@ -22,7 +22,7 @@ #include "Settings_p.h" -#include <parser.h> +#include "qjsonwrapper/Json.h" using namespace mygpo; @@ -49,9 +49,8 @@ bool SettingsPrivate::parse( const QByteArray& data ) { - QJson::Parser parser; bool ok; - QVariant variant = parser.parse( data, &ok ); + QVariant variant = QJsonWrapper::parseJson( data, &ok ); if( ok ) { ok = ( parse( variant ) ); @@ -63,7 +62,6 @@ { if( m_reply->error() == QNetworkReply::NoError ) { - QJson::Parser parser; if( parse( m_reply->readAll() ) ) { emit q->finished(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/src/TagList.cpp new/libmygpo-qt.1.0.9/src/TagList.cpp --- old/libmygpo-qt.1.0.7/src/TagList.cpp 2013-04-13 11:50:19.000000000 +0200 +++ new/libmygpo-qt.1.0.9/src/TagList.cpp 2016-09-16 13:02:54.000000000 +0200 @@ -22,7 +22,7 @@ #include "TagList_p.h" -#include <parser.h> +#include "qjsonwrapper/Json.h" using namespace mygpo; @@ -70,9 +70,8 @@ bool TagListPrivate::parse( const QByteArray& data ) { - QJson::Parser parser; bool ok; - QVariant variant = parser.parse( data, &ok ); + QVariant variant = QJsonWrapper::parseJson( data, &ok ); if( ok ) { ok = ( parse( variant ) ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/src/UrlBuilder.cpp new/libmygpo-qt.1.0.9/src/UrlBuilder.cpp --- old/libmygpo-qt.1.0.7/src/UrlBuilder.cpp 2013-04-13 11:51:26.000000000 +0200 +++ new/libmygpo-qt.1.0.9/src/UrlBuilder.cpp 2016-09-16 13:02:54.000000000 +0200 @@ -30,7 +30,6 @@ using namespace mygpo; -const QString UrlBuilder::s_server = Config::instance()->mygpoBaseUrl().toString(); const QString UrlBuilder::s_api2 = QLatin1String( "/api/2" ); const QString UrlBuilder::s_api1 = QLatin1String( "/api/1" ); @@ -58,92 +57,110 @@ QString UrlBuilder::getToplistUrl( uint i, Format f ) { QString numString = QString::number(( i == 0 ) ? 1 : i ); - return s_server % QLatin1String( "/toplist/" ) % numString % getFormatExtension( f ); + return Config::instance()->mygpoBaseUrl().toString() % + QLatin1String( "/toplist/" ) % numString % getFormatExtension( f ); } QString UrlBuilder::getSuggestionsUrl( uint i, Format f ) { QString numString = QString::number(( i == 0 ) ? 1 : i ); - return s_server % QLatin1String( "/suggestions/" ) % numString % getFormatExtension( f ); + return Config::instance()->mygpoBaseUrl().toString() % + QLatin1String( "/suggestions/" ) % numString % getFormatExtension( f ); } QString UrlBuilder::getPodcastSearchUrl( const QString& query, Format f ) { - return s_server % QLatin1String( "/search" ) % getFormatExtension( f ) % QLatin1String( "?q=" ) % query; + return Config::instance()->mygpoBaseUrl().toString() % + QLatin1String( "/search" ) % getFormatExtension( f ) % QLatin1String( "?q=" ) % query; } QString UrlBuilder::getSubscriptionsUrl( const QString& username, const QString& device, UrlBuilder::Format f) { - return s_server % QLatin1String( "/subscriptions/" ) % username % QLatin1String( "/" ) % device % getFormatExtension( f ); + QString deviceString = device.isNull() ? QString(QLatin1String("")) : (QLatin1String( "/" ) % device); + return Config::instance()->mygpoBaseUrl().toString() % + QLatin1String( "/subscriptions/" ) % username % deviceString % getFormatExtension( f ); } QString UrlBuilder::getTopTagsUrl( uint i ) { QString numString = QString::number(( i == 0 ) ? 1 : i ); - return s_server % s_api2 % QLatin1String( "/tags/" ) % numString % QLatin1String( ".json" ); + return Config::instance()->mygpoBaseUrl().toString() % + s_api2 % QLatin1String( "/tags/" ) % numString % QLatin1String( ".json" ); } QString UrlBuilder::getPodcastsOfTagUrl( const QString& tag, uint i ) { QString numString = QString::number(( i == 0 ) ? 1 : i ); - return s_server % s_api2 % QLatin1String( "/tag/" ) % tag % QLatin1String( "/" ) % numString % QLatin1String( ".json" ); + return Config::instance()->mygpoBaseUrl().toString() % + s_api2 % QLatin1String( "/tag/" ) % tag % QLatin1String( "/" ) % numString % QLatin1String( ".json" ); } QString UrlBuilder::getPodcastDataUrl( const QString& url ) { - return s_server % s_api2 % QLatin1String( "/data/podcast" ) % QLatin1String( ".json" ) % QLatin1String( "?url=" ) % url; + return Config::instance()->mygpoBaseUrl().toString() % + s_api2 % QLatin1String( "/data/podcast" ) % QLatin1String( ".json" ) % QLatin1String( "?url=" ) % url; } QString UrlBuilder::getEpisodeDataUrl( const QString& podcastUrl, const QString& episodeUrl ) { - return s_server % s_api2 % QLatin1String( "/data/episode" ) % QLatin1String( ".json" ) % QLatin1String( "?podcast=" ) % podcastUrl % QLatin1String( "&url=" ) % episodeUrl; + return Config::instance()->mygpoBaseUrl().toString() % + s_api2 % QLatin1String( "/data/episode" ) % QLatin1String( ".json" ) % QLatin1String( "?podcast=" ) % podcastUrl % QLatin1String( "&url=" ) % episodeUrl; } QString UrlBuilder::getFavEpisodesUrl( const QString& username ) { - return s_server % s_api2 % QLatin1String( "/favorites/" ) % username % QLatin1String( ".json" ); + return Config::instance()->mygpoBaseUrl().toString() % + s_api2 % QLatin1String( "/favorites/" ) % username % QLatin1String( ".json" ); } QString UrlBuilder::getAddRemoveSubUrl( const QString& username, const QString& deviceId ) { - return s_server % s_api2 % QLatin1String( "/subscriptions/" ) % username % QLatin1String( "/" ) % deviceId % QLatin1String( ".json" ); + return Config::instance()->mygpoBaseUrl().toString() % + s_api2 % QLatin1String( "/subscriptions/" ) % username % QLatin1String( "/" ) % deviceId % QLatin1String( ".json" ); } QString UrlBuilder::getAccountSettingsUrl( const QString& username ) { - return s_server % s_api2 % QLatin1String( "/settings/" ) % username % QLatin1String( "/account" ) % QLatin1String( ".json" ); + return Config::instance()->mygpoBaseUrl().toString() % + s_api2 % QLatin1String( "/settings/" ) % username % QLatin1String( "/account" ) % QLatin1String( ".json" ); } QString UrlBuilder::getDeviceSettingsUrl( const QString& username, const QString& deviceId ) { - return s_server % s_api2 % QLatin1String( "/settings/" ) % username % QLatin1String( "/device" ) % QLatin1String( ".json" ) % QLatin1String( "?device=" ) % deviceId; + return Config::instance()->mygpoBaseUrl().toString() % + s_api2 % QLatin1String( "/settings/" ) % username % QLatin1String( "/device" ) % QLatin1String( ".json" ) % QLatin1String( "?device=" ) % deviceId; } QString UrlBuilder::getPodcastSettingsUrl( const QString& username, const QString& podcastUrl ) { - return s_server % s_api2 % QLatin1String( "/settings/" ) % username % QLatin1String( "/podcast" ) % QLatin1String( ".json" ) % QLatin1String( "?podcast=" ) % podcastUrl; + return Config::instance()->mygpoBaseUrl().toString() % + s_api2 % QLatin1String( "/settings/" ) % username % QLatin1String( "/podcast" ) % QLatin1String( ".json" ) % QLatin1String( "?podcast=" ) % podcastUrl; } QString UrlBuilder::getEpisodeSettingsUrl( const QString& username, const QString& podcastUrl, const QString& episodeUrl ) { - return s_server % s_api2 % QLatin1String( "/settings/" ) % username % QLatin1String( "/episode" ) % QLatin1String( ".json" ) % QLatin1String( "?podcast=" ) % podcastUrl % QLatin1String( "&episode=" ) % episodeUrl; + return Config::instance()->mygpoBaseUrl().toString() % + s_api2 % QLatin1String( "/settings/" ) % username % QLatin1String( "/episode" ) % QLatin1String( ".json" ) % QLatin1String( "?podcast=" ) % podcastUrl % QLatin1String( "&episode=" ) % episodeUrl; } QString UrlBuilder::getDeviceListUrl( const QString& username ) { - return s_server % s_api2 % QLatin1String( "/devices/" ) % username % QLatin1String( ".json" ) ; + return Config::instance()->mygpoBaseUrl().toString() % + s_api2 % QLatin1String( "/devices/" ) % username % QLatin1String( ".json" ) ; } QString UrlBuilder::getDeviceUpdatesUrl( const QString& username, const QString& deviceId, qulonglong timestamp ) { QString numString = QString::number( timestamp ); - return s_server % s_api2 % QLatin1String( "/updates/" ) % username % QLatin1String( "/" ) % deviceId % QLatin1String( ".json?since=" ) % numString; + return Config::instance()->mygpoBaseUrl().toString() % + s_api2 % QLatin1String( "/updates/" ) % username % QLatin1String( "/" ) % deviceId % QLatin1String( ".json?since=" ) % numString; } QString UrlBuilder::getRenameDeviceUrl( const QString& username, const QString& deviceId ) { - return s_server % s_api2 % QLatin1String( "/devices/" ) % username % QLatin1String( "/" ) % deviceId % QLatin1String( ".json" ); + return Config::instance()->mygpoBaseUrl().toString() % + s_api2 % QLatin1String( "/devices/" ) % username % QLatin1String( "/" ) % deviceId % QLatin1String( ".json" ); } QString UrlBuilder::getEpisodeActionsUrl( const QString& username, const bool aggregated ) @@ -154,7 +171,8 @@ else agg = QLatin1String( "" ); - return s_server % s_api2 % QLatin1String( "/episodes/" ) % username % QLatin1String( ".json" ) % agg; + return Config::instance()->mygpoBaseUrl().toString() % + s_api2 % QLatin1String( "/episodes/" ) % username % QLatin1String( ".json" ) % agg; } QString UrlBuilder::getEpisodeActionsUrlByPodcast( const QString& username, const QString& podcastUrl, const bool aggregated ) @@ -165,7 +183,8 @@ else agg = QLatin1String( "" ); - return s_server % s_api2 % QLatin1String( "/episodes/" ) % username % QLatin1String( ".json?podcast=" ) % podcastUrl % agg; + return Config::instance()->mygpoBaseUrl().toString() % + s_api2 % QLatin1String( "/episodes/" ) % username % QLatin1String( ".json?podcast=" ) % podcastUrl % agg; } QString UrlBuilder::getEpisodeActionsUrlByDevice( const QString& username, const QString& deviceId, bool aggregated ) @@ -176,33 +195,39 @@ else agg = QLatin1String( "" ); - return s_server % s_api2 % QLatin1String( "/episodes/" ) % username % QLatin1String( ".json?device=" ) % deviceId % agg; + return Config::instance()->mygpoBaseUrl().toString() % + s_api2 % QLatin1String( "/episodes/" ) % username % QLatin1String( ".json?device=" ) % deviceId % agg; } QString UrlBuilder::getEpisodeActionsUrlByTimestamp( const QString& username, qulonglong since ) { QString numString = QString::number( since ); - return s_server % s_api2 % QLatin1String( "/episodes/" ) % username % QLatin1String( ".json?since=" ) % numString; + return Config::instance()->mygpoBaseUrl().toString() % + s_api2 % QLatin1String( "/episodes/" ) % username % QLatin1String( ".json?since=" ) % numString; } QString UrlBuilder::getEpisodeActionsUrlByPodcastAndTimestamp( const QString& username, const QString& podcastUrl, qulonglong since ) { QString numString = QString::number( since ); - return s_server % s_api2 % QLatin1String( "/episodes/" ) % username % QLatin1String( ".json?podcast=" ) % podcastUrl % QLatin1String( "&since=" ) % numString; + return Config::instance()->mygpoBaseUrl().toString() % + s_api2 % QLatin1String( "/episodes/" ) % username % QLatin1String( ".json?podcast=" ) % podcastUrl % QLatin1String( "&since=" ) % numString; } QString UrlBuilder::getEpisodeActionsUrlByDeviceAndTimestamp( const QString& username, const QString& deviceId, qulonglong since ) { QString numString = QString::number( since ); - return s_server % s_api2 % QLatin1String( "/episodes/" ) % username % QLatin1String( ".json?device=" ) % deviceId % QLatin1String( "&since=" ) % numString; + return Config::instance()->mygpoBaseUrl().toString() % + s_api2 % QLatin1String( "/episodes/" ) % username % QLatin1String( ".json?device=" ) % deviceId % QLatin1String( "&since=" ) % numString; } QString UrlBuilder::getUploadEpisodeActionsUrl( const QString& username ) { - return s_server % s_api2 % QLatin1String( "/episodes/" ) % username % QLatin1String( ".json" ); + return Config::instance()->mygpoBaseUrl().toString() % + s_api2 % QLatin1String( "/episodes/" ) % username % QLatin1String( ".json" ); } QString UrlBuilder::getDeviceSynchronizationStatusUrl ( const QString& username ) { - return s_server % s_api2 % QLatin1String( "/sync-devices/" ) % username % QLatin1String( ".json" ); + return Config::instance()->mygpoBaseUrl().toString() % + s_api2 % QLatin1String( "/sync-devices/" ) % username % QLatin1String( ".json" ); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/src/UrlBuilder.h new/libmygpo-qt.1.0.9/src/UrlBuilder.h --- old/libmygpo-qt.1.0.7/src/UrlBuilder.h 2013-04-13 11:51:21.000000000 +0200 +++ new/libmygpo-qt.1.0.9/src/UrlBuilder.h 2016-09-16 13:02:54.000000000 +0200 @@ -137,7 +137,6 @@ private: UrlBuilder() {}; UrlBuilder( const UrlBuilder& ) {}; - static const QString s_server; static const QString s_api2; static const QString s_api1; }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/src/qjsonwrapper/Json.cpp new/libmygpo-qt.1.0.9/src/qjsonwrapper/Json.cpp --- old/libmygpo-qt.1.0.7/src/qjsonwrapper/Json.cpp 1970-01-01 01:00:00.000000000 +0100 +++ new/libmygpo-qt.1.0.9/src/qjsonwrapper/Json.cpp 2016-09-16 13:02:54.000000000 +0200 @@ -0,0 +1,128 @@ +/* Copyright 2014, Uwe L. Korn <[email protected]> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "Json.h" + +// Qt version specific includes +#if QT_VERSION >= QT_VERSION_CHECK( 5, 0, 0 ) + #include <QJsonDocument> + #include <QMetaProperty> +#else + #include <qjson/parser.h> + #include <qjson/qobjecthelper.h> + #include <qjson/serializer.h> +#endif + +namespace QJsonWrapper +{ + +QVariantMap +qobject2qvariant( const QObject* object ) +{ +#if QT_VERSION >= QT_VERSION_CHECK( 5, 0, 0 ) + QVariantMap map; + if ( object == NULL ) + { + return map; + } + + const QMetaObject* metaObject = object->metaObject(); + for ( int i = 0; i < metaObject->propertyCount(); ++i ) + { + QMetaProperty metaproperty = metaObject->property( i ); + if ( metaproperty.isReadable() ) + { + map[ QLatin1String( metaproperty.name() ) ] = object->property( metaproperty.name() ); + } + } + return map; +#else + return QJson::QObjectHelper::qobject2qvariant( object ); +#endif +} + + +void +qvariant2qobject( const QVariantMap& variant, QObject* object ) +{ +#if QT_VERSION >= QT_VERSION_CHECK( 5, 0, 0 ) + for ( QVariantMap::const_iterator iter = variant.begin(); iter != variant.end(); ++iter ) + { + QVariant property = object->property( iter.key().toLatin1() ); + Q_ASSERT( property.isValid() ); + if ( property.isValid() ) + { + QVariant value = iter.value(); + if ( value.canConvert( property.type() ) ) + { + value.convert( property.type() ); + object->setProperty( iter.key().toLatin1(), value ); + } else if ( QString( QLatin1String("QVariant") ).compare( QLatin1String( property.typeName() ) ) == 0 ) { + object->setProperty( iter.key().toLatin1(), value ); + } + } + } +#else + QJson::QObjectHelper::qvariant2qobject( variant, object ); +#endif +} + + +QVariant +parseJson( const QByteArray& jsonData, bool* ok ) +{ +#if QT_VERSION >= QT_VERSION_CHECK( 5, 0, 0 ) + QJsonParseError error; + QJsonDocument doc = QJsonDocument::fromJson( jsonData, &error ); + if ( ok != NULL ) + { + *ok = ( error.error == QJsonParseError::NoError ); + } + return doc.toVariant(); +#else + QJson::Parser p; + return p.parse( jsonData, ok ); +#endif +} + + +QByteArray +toJson( const QVariant &variant, bool* ok ) +{ +#if QT_VERSION >= QT_VERSION_CHECK( 5, 0, 0 ) + QJsonDocument doc = QJsonDocument::fromVariant( variant ); + if ( ok != NULL ) + { + *ok = !doc.isNull(); + } + return doc.toJson( QJsonDocument::Compact ); +#else + QJson::Serializer serializer; + QByteArray ret = serializer.serialize( variant ); + if ( ok != NULL ) + { + *ok = !ret.isNull(); + } + return ret; +#endif +} + +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/src/qjsonwrapper/Json.h new/libmygpo-qt.1.0.9/src/qjsonwrapper/Json.h --- old/libmygpo-qt.1.0.7/src/qjsonwrapper/Json.h 1970-01-01 01:00:00.000000000 +0100 +++ new/libmygpo-qt.1.0.9/src/qjsonwrapper/Json.h 2016-09-16 13:02:54.000000000 +0200 @@ -0,0 +1,36 @@ +/* Copyright 2014, Uwe L. Korn <[email protected]> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#pragma once +#ifndef QJSONWRAPPER_JSON_H +#define QJSONWRAPPER_JSON_H + +#include <QVariant> + +namespace QJsonWrapper +{ + QVariantMap qobject2qvariant( const QObject* object ); + void qvariant2qobject( const QVariantMap& variant, QObject* object ); + QVariant parseJson( const QByteArray& jsonData, bool* ok = 0 ); + QByteArray toJson( const QVariant &variant, bool* ok = 0 ); +} + +#endif // QJSONWRAPPER_JSON_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/templates/Template.cpp new/libmygpo-qt.1.0.9/templates/Template.cpp --- old/libmygpo-qt.1.0.7/templates/Template.cpp 1970-01-01 01:00:00.000000000 +0100 +++ new/libmygpo-qt.1.0.9/templates/Template.cpp 2016-09-16 13:02:54.000000000 +0200 @@ -0,0 +1,22 @@ +/*************************************************************************** +* This file is part of libmygpo-qt * +* Copyright (c) 2010 - 2011 Stefan Derkits <[email protected]> * +* Copyright (c) 2010 - 2011 Christian Wagner <[email protected]> * +* Copyright (c) 2010 - 2011 Felix Winter <[email protected]> * +* * +* This library is free software; you can redistribute it and/or * +* modify it under the terms of the GNU Lesser General Public * +* License as published by the Free Software Foundation; either * +* version 2.1 of the License, or (at your option) any later version. * +* * +* This library is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * +* Lesser General Public License for more details. * +* * +* You should have received a copy of the GNU Lesser General Public * +* License along with this library; if not, write to the Free Software * +* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * +* USA * +***************************************************************************/ + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/templates/Template.h new/libmygpo-qt.1.0.9/templates/Template.h --- old/libmygpo-qt.1.0.7/templates/Template.h 1970-01-01 01:00:00.000000000 +0100 +++ new/libmygpo-qt.1.0.9/templates/Template.h 2016-09-16 13:02:54.000000000 +0200 @@ -0,0 +1,26 @@ +/*************************************************************************** +* This file is part of libmygpo-qt * +* Copyright (c) 2010 - 2011 Stefan Derkits <[email protected]> * +* Copyright (c) 2010 - 2011 Christian Wagner <[email protected]> * +* Copyright (c) 2010 - 2011 Felix Winter <[email protected]> * +* * +* This library is free software; you can redistribute it and/or * +* modify it under the terms of the GNU Lesser General Public * +* License as published by the Free Software Foundation; either * +* version 2.1 of the License, or (at your option) any later version. * +* * +* This library is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * +* Lesser General Public License for more details. * +* * +* You should have received a copy of the GNU Lesser General Public * +* License along with this library; if not, write to the Free Software * +* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * +* USA * +***************************************************************************/ + +#ifndef TEMPLATE_H +#define TEMPLATE_H + +#endif // TEMPLATE_H \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/tests/CMakeLists.txt new/libmygpo-qt.1.0.9/tests/CMakeLists.txt --- old/libmygpo-qt.1.0.7/tests/CMakeLists.txt 2013-01-19 12:48:52.000000000 +0100 +++ new/libmygpo-qt.1.0.9/tests/CMakeLists.txt 2016-09-16 13:02:54.000000000 +0200 @@ -7,26 +7,29 @@ set ( TESTOBJECTS_SRCDIR ${CMAKE_CURRENT_SOURCE_DIR}/../src ) -include_directories( ${QT_INCLUDES} ${QJSON_INCLUDE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/../src ${TESTOBJECTS_SRCDIR} ) +include_directories( ${QJSON_INCLUDE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/../src ${TESTOBJECTS_SRCDIR} ) # UrlBuilder library add_library( UrlBuilder ${TESTOBJECTS_SRCDIR}/UrlBuilder.cpp ${TESTOBJECTS_SRCDIR}/Config.cpp ) +qt5_use_modules( UrlBuilder Core ) # JSONCreator library -QT4_WRAP_CPP(LIBMYGPO_QT_MOC_SRC ${TESTOBJECTS_SRCDIR}/EpisodeAction.h ${TESTOBJECTS_SRCDIR}/EpisodeAction_p.h ) -add_library( JsonCreator ${TESTOBJECTS_SRCDIR}/JsonCreator.cpp ${TESTOBJECTS_SRCDIR}/EpisodeAction.cpp ${LIBMYGPO_QT_MOC_SRC}) +QT_WRAP_CPP(LIBMYGPO_QT_MOC_SRC ${TESTOBJECTS_SRCDIR}/EpisodeAction.h ${TESTOBJECTS_SRCDIR}/EpisodeAction_p.h ) +add_library( JsonCreator ${TESTOBJECTS_SRCDIR}/JsonCreator.cpp ${TESTOBJECTS_SRCDIR}/EpisodeAction.cpp ${TESTOBJECTS_SRCDIR}/qjsonwrapper/Json.cpp ${LIBMYGPO_QT_MOC_SRC}) +qt5_use_modules( JsonCreator Core Network ) set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} ) macro(add_libmygpo_test _source) get_filename_component(_name ${_source} NAME_WE) - QT4_WRAP_CPP(${_name}_MOC_SRC ${_name}.h) + QT_WRAP_CPP(${_name}_MOC_SRC ${_name}.h) add_executable(${_name} ${_source} ${${_name}_MOC_SRC}) target_link_libraries(${_name} ${QT_QTCORE_LIBRARY} ${QT_QTTEST_LIBRARY} ${QT_QTNETWORK_LIBRARY}) add_test(${_name}-test ${EXECUTABLE_OUTPUT_PATH}/${_name}) + qt5_use_modules(${_name} Network Test) endmacro(add_libmygpo_test) add_libmygpo_test( UrlBuilderTest.cpp ) target_link_libraries( UrlBuilderTest UrlBuilder) add_libmygpo_test( JsonCreatorTest.cpp ) -target_link_libraries( JsonCreatorTest JsonCreator ${QJSON_LIBRARIES} ) \ No newline at end of file +target_link_libraries( JsonCreatorTest JsonCreator ${QJSON_LIBRARIES} ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/tests/JsonCreatorTest.cpp new/libmygpo-qt.1.0.9/tests/JsonCreatorTest.cpp --- old/libmygpo-qt.1.0.7/tests/JsonCreatorTest.cpp 2013-01-19 12:48:52.000000000 +0100 +++ new/libmygpo-qt.1.0.9/tests/JsonCreatorTest.cpp 2016-09-16 13:02:54.000000000 +0200 @@ -57,12 +57,13 @@ QList<QUrl> add; QList<QUrl> remove; QByteArray output; - + // test with empty lists output = JsonCreator::addRemoveSubsToJSON(add, remove); + QString outString1 = QString::fromLatin1( output ).replace( QLatin1String(" "), QLatin1String("") ); + QString expected1( QLatin1String( "{\"add\":[],\"remove\":[]}" ) ); + QCOMPARE(outString1, expected1 ); - QCOMPARE(output, QByteArray("{ \"add\" : [ ], \"remove\" : [ ] }")); - // test with full lists add.append(QUrl(QLatin1String("http://example.com/feed.rss"))); add.append(QUrl(QLatin1String("http://example.org/podcast.php"))); @@ -70,8 +71,9 @@ remove.append(QUrl(QLatin1String("http://example.org/podcast.php"))); output = JsonCreator::addRemoveSubsToJSON(add, remove); - - QCOMPARE(output, QByteArray("{ \"add\" : [ \"http://example.com/feed.rss\", \"http://example.org/podcast.php\" ], \"remove\" : [ \"http://example.org/podcast.php\" ] }")); + QString outString2 = QString::fromLatin1( output ).replace( QLatin1String(" "), QLatin1String("") ); + QString expected2( QLatin1String("{\"add\":[\"http://example.com/feed.rss\",\"http://example.org/podcast.php\"],\"remove\":[\"http://example.org/podcast.php\"]}")); + QCOMPARE(outString2, expected2 ); } void JsonCreatorTest::testSaveSettingsToJSON() @@ -82,9 +84,11 @@ // test with empty map/list output = JsonCreator::saveSettingsToJSON(set, remove); + QString outString1 = QString::fromLatin1( output ).replace( QLatin1String(" "), QLatin1String("") ); + QString expected1( QLatin1String( "{\"remove\":[],\"set\":{}}" ) ); + + QCOMPARE( outString1, expected1 ); - QCOMPARE(output, QByteArray("{ \"remove\" : [ ], \"set\" : { } }")); - // test with different settings (String, DateTime, Integer) set.insert(QLatin1String("setting4"), QLatin1String("stringvalue")); set.insert(QLatin1String("setting5"), QDateTime::fromString(QLatin1String("M1d1y9800:01:02"), @@ -95,9 +99,11 @@ remove.append(QLatin1String("setting2")); output = JsonCreator::saveSettingsToJSON(set, remove); + QString outString2 = QString::fromLatin1( output ).replace( QLatin1String(" "), QLatin1String("") ); + QString expected2( QLatin1String( "{\"remove\":[\"setting1\",\"setting2\"],\"set\":{\"setting4\":\"stringvalue\",\"setting5\":\"1998-01-01T00:01:02\",\"setting6\":4}}" ) ); + + QCOMPARE( outString2, expected2 ); - QCOMPARE(output, QByteArray("{ \"remove\" : [ \"setting1\", \"setting2\" ], \"set\" : { \"setting4\" : \"stringvalue\", \"setting5\" : \"1998-01-01T00:01:02\", \"setting6\" : 4 } }")); - } void JsonCreatorTest::testEpisodeActionListToJSON() @@ -107,8 +113,9 @@ // test with empty list output = JsonCreator::episodeActionListToJSON(episodeActions); - - QCOMPARE(output, QByteArray("[ ]")); + QString outString1 = QString::fromLatin1( output ).replace( QLatin1String(" "), QLatin1String("") ); + QString expected1( QLatin1String( "[]" ) ); + QCOMPARE( outString1, expected1 ); // test with some values @@ -125,8 +132,10 @@ episodeActions << episode << episode2 << episode3 << episode4 << episode5 << episode6; output = JsonCreator::episodeActionListToJSON(episodeActions); - - QCOMPARE(output, QByteArray("[ { \"action\" : \"download\", \"device\" : \"device1\", \"episode\" : \"http://episode.url\", \"podcast\" : \"http://podcast.url\", \"timestamp\" : \"1998-01-01T00:01:02\" }, { \"action\" : \"delete\", \"device\" : \"device3\", \"episode\" : \"http://episode2.url\", \"podcast\" : \"http://podcast2.url\", \"timestamp\" : \"1920-01-01T12:01:02\" }, { \"action\" : \"new\", \"device\" : \"foodev\", \"episode\" : \"http://www.podtrac.com\", \"podcast\" : \"http://leo.am\", \"timestamp\" : \"1998-01-01T00:01:02\" }, { \"action\" : \"play\", \"device\" : \"foodev\", \"episode\" : \"http://www.podtrac.com\", \"podcast\" : \"http://leo.am\", \"timestamp\" : \"1920-01-01T12:01:02\" }, { \"action\" : \"play\", \"device\" : \"foodev\", \"episode\" : \"http://www.podtrac.com\", \"podcast\" : \"http://leo.am\", \"position\" : 123, \"started\" : 10, \"timestamp\" : \"1998-01-01T00:01:02\", \"total\" : 321 }, { \"action\" : \"play\", \"device\" : \"foodev\", \"episode\" : \"http://www.podtrac.com\", \"podcast\" : \"http://leo.am\", \"position\" : 10, \"timestamp\" : \"1998-01-01T00:01:02\" } ]")); + QString outString2 = QString::fromLatin1( output ).replace( QLatin1String(" "), QLatin1String("") ); + QString expected2( QLatin1String( "[{\"action\":\"download\",\"device\":\"device1\",\"episode\":\"http://episode.url\",\"podcast\":\"http://podcast.url\",\"timestamp\":\"1998-01-01T00:01:02\"},{\"action\":\"delete\",\"device\":\"device3\",\"episode\":\"http://episode2.url\",\"podcast\":\"http://podcast2.url\",\"timestamp\":\"1920-01-01T12:01:02\"},{\"action\":\"new\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"timestamp\":\"1998-01-01T00:01:02\"},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"timestamp\":\"1920-01-01T12:01:02\" },{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"position\":123,\"started\":10,\"timestamp\":\"1998-01-01T00:01:02\",\"total\":321},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"position\":10,\"timestamp\":\"1998-01-01T00:01:02\"}]" ) ); + + QCOMPARE(outString2, expected2 ); } void JsonCreatorTest::testRenameDeviceStringToJSON() @@ -137,17 +146,21 @@ // test with empty values output = JsonCreator::renameDeviceStringToJSON(caption, type); + QString outString1 = QString::fromLatin1( output ).replace( QLatin1String(" "), QLatin1String("") ); + QString expected1( QLatin1String( "{\"caption\":\"\",\"type\":\"\"}" ) ); - QCOMPARE(output, QByteArray("{ \"caption\" : \"\", \"type\" : \"\" }")); + QCOMPARE(outString1, expected1 ); // test with some values caption = QLatin1String("caption1"); type = QLatin1String("type1"); output = JsonCreator::renameDeviceStringToJSON(caption, type); + QString outString2 = QString::fromLatin1( output ).replace( QLatin1String(" "), QLatin1String("") ); + QString expected2( QLatin1String( "{\"caption\":\"caption1\",\"type\":\"type1\"}" ) ); + + QCOMPARE( outString2, expected2 ); - QCOMPARE(output, QByteArray("{ \"caption\" : \"caption1\", \"type\" : \"type1\" }")); - } void JsonCreatorTest::testDeviceSynchronizationListsToJSON() @@ -163,7 +176,9 @@ // test with empty lists output = JsonCreator::deviceSynchronizationListsToJSON(sync, stopSync); - QCOMPARE(output, QByteArray("{\"synchronize\" : [ ] ,\"stop-synchronize\" : [ ] }\n")); + QString outString1 = QString::fromLatin1( output ).replace( QLatin1String(" "), QLatin1String("") ); + QString expected1( QLatin1String( "{\"synchronize\":[],\"stop-synchronize\":[]}" ) ); + QCOMPARE( outString1, expected1 ); // test with full lists sync1.append(QLatin1String("foo")); @@ -183,7 +198,9 @@ stopSync.append(QLatin1String("stop3")); output = JsonCreator::deviceSynchronizationListsToJSON(sync, stopSync); - QCOMPARE(output, QByteArray("{\"synchronize\" : [[\"foo\",\"bar\"],[\"foobar\",\"barfoo\",\"foobarfoo\",\"foobar4\"],[ ]] ,\"stop-synchronize\" : [\"stop1\",\"stop2\",\"stop3\"] }\n")); + QString outString2 = QString::fromLatin1( output ).replace( QLatin1String(" "), QLatin1String("") ); + QString expected2( QLatin1String( "{\"synchronize\":[[\"foo\",\"bar\"],[\"foobar\",\"barfoo\",\"foobarfoo\",\"foobar4\"],[]],\"stop-synchronize\":[\"stop1\",\"stop2\",\"stop3\"]}" ) ); + QCOMPARE( outString2, expected2 ); } QTEST_MAIN(JsonCreatorTest) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/tests/UrlBuilderTest.cpp new/libmygpo-qt.1.0.9/tests/UrlBuilderTest.cpp --- old/libmygpo-qt.1.0.7/tests/UrlBuilderTest.cpp 2012-07-20 13:58:51.000000000 +0200 +++ new/libmygpo-qt.1.0.9/tests/UrlBuilderTest.cpp 2016-09-16 13:02:54.000000000 +0200 @@ -24,7 +24,7 @@ using namespace mygpo; -UrlBuilderTest::UrlBuilderTest() :m_server(QLatin1String("http://gpodder.net")), +UrlBuilderTest::UrlBuilderTest() :m_server(QLatin1String("https://gpodder.net")), m_api2(QLatin1String( "/api/2" )) { } @@ -262,4 +262,19 @@ m_server + m_api2 + QLatin1String("/subscriptions/ÖÄÜ/!\"§$%$&/()=?ß{}Ä.json")); } +/** +* Tests for getSubscriptionsUrl() +*/ +void UrlBuilderTest::testGetSubscriptionUrl() +{ + QCOMPARE(UrlBuilder::getSubscriptionsUrl(QLatin1String("user123"), QLatin1String("device456"), UrlBuilder::JSON), + m_server + QLatin1String("/subscriptions/user123/device456.json")); +} + +void UrlBuilderTest::testGetSubscriptionUrlWithoutDevice() +{ + QCOMPARE(UrlBuilder::getSubscriptionsUrl(QLatin1String("user"), QString(), UrlBuilder::OPML), + m_server + QLatin1String("/subscriptions/user.opml")); +} + QTEST_MAIN(UrlBuilderTest) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmygpo-qt.1.0.7/tests/UrlBuilderTest.h new/libmygpo-qt.1.0.9/tests/UrlBuilderTest.h --- old/libmygpo-qt.1.0.7/tests/UrlBuilderTest.h 2012-07-20 13:58:51.000000000 +0200 +++ new/libmygpo-qt.1.0.9/tests/UrlBuilderTest.h 2016-09-16 13:02:54.000000000 +0200 @@ -109,6 +109,12 @@ void testGetAddRemoveSubUrlEmpty(); void testGetAddRemoveSubUrlSpecialCharacters(); + /** + * Tests for getSubscriptionsUrl() + */ + void testGetSubscriptionUrl(); + void testGetSubscriptionUrlWithoutDevice(); + /** These constans must be equal to the constants defined for UrlBuilder */ private: const QString m_server;
