179eea979b60073d382f30c5e3f74b713c1d2456
[profile/ivi/qtxmlpatterns.git] / tests / auto / network-settings.h
1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/
5 **
6 ** This file is part of the test suite of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** GNU Lesser General Public License Usage
10 ** This file may be used under the terms of the GNU Lesser General Public
11 ** License version 2.1 as published by the Free Software Foundation and
12 ** appearing in the file LICENSE.LGPL included in the packaging of this
13 ** file. Please review the following information to ensure the GNU Lesser
14 ** General Public License version 2.1 requirements will be met:
15 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
16 **
17 ** In addition, as a special exception, Nokia gives you certain additional
18 ** rights. These rights are described in the Nokia Qt LGPL Exception
19 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
20 **
21 ** GNU General Public License Usage
22 ** Alternatively, this file may be used under the terms of the GNU General
23 ** Public License version 3.0 as published by the Free Software Foundation
24 ** and appearing in the file LICENSE.GPL included in the packaging of this
25 ** file. Please review the following information to ensure the GNU General
26 ** Public License version 3.0 requirements will be met:
27 ** http://www.gnu.org/copyleft/gpl.html.
28 **
29 ** Other Usage
30 ** Alternatively, this file may be used in accordance with the terms and
31 ** conditions contained in a signed written agreement between you and Nokia.
32 **
33 **
34 **
35 **
36 **
37 **
38 ** $QT_END_LICENSE$
39 **
40 ****************************************************************************/
41
42 #include <QString>
43 #ifdef QT_NETWORK_LIB
44 #include <QtNetwork/QHostInfo>
45 #endif
46
47 class QtNetworkSettings
48 {
49 public:
50
51     static QString serverLocalName()
52     {
53         return QString("qt-test-server");
54     }
55     static QString serverDomainName()
56     {
57         return QString("qt-test-net");
58     }
59     static QString serverName()
60     {
61         return serverLocalName() + "." + serverDomainName();
62     }
63     static QString winServerName()
64     {
65         return serverName();
66     }
67     static QString wildcardServerName()
68     {
69         return "qt-test-server.wildcard.dev." + serverDomainName();
70     }
71
72 #ifdef QT_NETWORK_LIB
73     static QHostAddress serverIP()
74     {
75         return QHostInfo::fromName(serverName()).addresses().first();
76     }
77 #endif
78
79     static bool compareReplyIMAP(QByteArray const& actual)
80     {
81         QList<QByteArray> expected;
82
83         // Mandriva; old test server
84         expected << QByteArray( "* OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID STARTTLS LOGINDISABLED] " )
85             .append(QtNetworkSettings::serverName().toLatin1())
86             .append(" Cyrus IMAP4 v2.3.11-Mandriva-RPM-2.3.11-6mdv2008.1 server ready\r\n");
87
88         // Ubuntu 10.04; new test server
89         expected << QByteArray( "* OK " )
90             .append(QtNetworkSettings::serverLocalName().toLatin1())
91             .append(" Cyrus IMAP4 v2.2.13-Debian-2.2.13-19 server ready\r\n");
92
93         // Feel free to add more as needed
94
95         Q_FOREACH (QByteArray const& ba, expected) {
96             if (ba == actual) {
97                 return true;
98             }
99         }
100
101         return false;
102     }
103
104     static bool compareReplyIMAPSSL(QByteArray const& actual)
105     {
106         QList<QByteArray> expected;
107
108         // Mandriva; old test server
109         expected << QByteArray( "* OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID AUTH=PLAIN SASL-IR] " )
110             .append(QtNetworkSettings::serverName().toLatin1())
111             .append(" Cyrus IMAP4 v2.3.11-Mandriva-RPM-2.3.11-6mdv2008.1 server ready\r\n");
112
113         // Ubuntu 10.04; new test server
114         expected << QByteArray( "* OK " )
115             .append(QtNetworkSettings::serverLocalName().toLatin1())
116             .append(" Cyrus IMAP4 v2.2.13-Debian-2.2.13-19 server ready\r\n");
117
118         // Feel free to add more as needed
119
120         Q_FOREACH (QByteArray const& ba, expected) {
121             if (ba == actual) {
122                 return true;
123             }
124         }
125
126         return false;
127     }
128
129     static bool compareReplyFtp(QByteArray const& actual)
130     {
131         QList<QByteArray> expected;
132
133         // A few different vsFTPd versions.
134         // Feel free to add more as needed
135         expected << QByteArray( "220 (vsFTPd 2.0.5)\r\n221 Goodbye.\r\n" );
136         expected << QByteArray( "220 (vsFTPd 2.2.2)\r\n221 Goodbye.\r\n" );
137
138         Q_FOREACH (QByteArray const& ba, expected) {
139             if (ba == actual) {
140                 return true;
141             }
142         }
143
144         return false;
145     }
146
147 #ifdef QT_NETWORK_LIB
148     static bool verifyTestNetworkSettings()
149     {
150         QHostInfo testServerResult = QHostInfo::fromName(QtNetworkSettings::serverName());
151         if (testServerResult.error() != QHostInfo::NoError) {
152             qWarning() << "Could not lookup" << QtNetworkSettings::serverName();
153             qWarning() << "Please configure the test environment!";
154             qWarning() << "See /etc/hosts or network-settings.h";
155             return false;
156         }
157         return true;
158     }
159 #endif
160 };