Ejemplo n.º 1
0
    def testAddQueryItem(self):
        #QUrl.addQueryItem
        url = QUrl()
        valid_data = [('hl', 'en'), ('user', 'konqui')]

        url.addQueryItem(*valid_data[0])
        self.assertEqual(url.queryItems()[0], valid_data[0])

        url.addQueryItem(*valid_data[1])
        self.assertEqual(sorted(url.queryItems()), sorted(valid_data))
Ejemplo n.º 2
0
    def testAddQueryItem(self):
        #QUrl.addQueryItem
        url = QUrl()
        valid_data = [('hl', 'en'), ('user', 'konqui')]

        url.addQueryItem(*valid_data[0])
        self.assertEqual(url.queryItems()[0], valid_data[0])

        url.addQueryItem(*valid_data[1])
        self.assertEqual(sorted(url.queryItems()), sorted(valid_data))
Ejemplo n.º 3
0
    def testSetQueryItems(self):
        #QUrl.setQueryItems
        urla = QUrl('http://www.google.com/search?q=python&hl=en')
        urlb = QUrl('http://www.google.com/search')

        urlb.setQueryItems(urla.queryItems())

        self.assertEqual(urla, urlb)
Ejemplo n.º 4
0
    def testSetQueryItems(self):
        #QUrl.setQueryItems
        urla = QUrl('http://www.google.com/search?q=python&hl=en')
        urlb = QUrl('http://www.google.com/search')

        urlb.setQueryItems(urla.queryItems())

        self.assertEqual(urla, urlb)
Ejemplo n.º 5
0
    def _slot_httpResponseFinished(self, reply):
        """
        Slot for QWebView's QNetworkAccessManager finished signal.

        @param reply (QNetworkReply)
        """

        #print "REPLY::ERROR>> ", reply.error()
        #print "REPLY::FINISHED>> ", self.url()

        url = self.url()

#    # -------------------------------------------------------------------------
#
#    def _slot_urlChanged(self, url):
#        """
#        Slot for QWebView urlChanged signal.
#
#        @param url (QUrl)
#        """

        # ---------------------------------------------------------------------
        # PARSE URL DATA
        # ---------------------------------------------------------------------

        fragment = url.fragment()
        path = url.path()
        query_items = dict(url.queryItems())

        fragment_items = []
        if fragment:
            qu = QUrl()
            qu.setEncodedQuery(str(fragment))

            fragment_items = qu.queryItems()

            # push fragment values into query items dict
            for i in fragment_items:
                query_items[i[0]] = i[1]

        state = ""
        if "state" in query_items:
            state = query_items["state"]

        # ---------------------------------------------------------------------
        # FIRE DESTINATION SIGNALS
        # ---------------------------------------------------------------------

        if "error" in query_items:
            error_reason = ""
            if "error_reason" in query_items:
                reason = query_items["error_reason"]

            error_description = ""
            if "error_description" in query_items:
                description = query_items["error_description"].replace("+"," ")

            # user canceled before granting permissions
            self.signal_permsNotAuthorized.emit(query_items["error"], reason,
                    description, state)

            return

        if path == "/login.php":
            if "skip_api_login" in query_items:
                # initial load of the login form
                self.signal_authFormReady.emit(state)

                return

            elif "login_attempt" in query_items:
                # user login credentials invalid
                self.signal_authFail.emit(state)

                return

        elif path == "/dialog/permissions.request":
            if "from_login" in query_items:
                # user authenticated successfully
                self.signal_authSuccess.emit(state)

                return

        elif path == "/connect/login_success.html":
            if "access_token" in query_items:
                access_token = query_items["access_token"]

                expires_in = 0
                if "expires_in" in query_items:
                    expires_in = int(query_items["expires_in"])

                # permissions authorized and access token received
                self.signal_permsAuthorizedAccessToken.emit(access_token,
                        expires_in, state)

                return

            elif "code" in query_items:
                oauth_code = query_items["code"]

                expires_in = 0
                if "expires_in" in query_items:
                    expires_in = int(query_items["expires_in"])

                # permissions authorized and OAuth code received
                self.signal_permsAuthorizedOAuthCode.emit(oauth_code, state)

                return

        # print url details if no destination matched
        print "URL Str: ", str(url)
        print "URL Path: ", path
        print "Query Items: ", query_items
        print "fragment: ", fragment
        print "fragment_items: ", fragment_items
Ejemplo n.º 6
0
    def testQueryItems(self):
        #QUrl.queryItems
        url = QUrl('http://www.google.com/search?q=python&hl=en')
        valid_data = [(('q'), ('python')), (('hl'), ('en'))]

        self.assertEqual(sorted(url.queryItems()), sorted(valid_data))
Ejemplo n.º 7
0
    def testQueryItems(self):
        #QUrl.queryItems
        url = QUrl('http://www.google.com/search?q=python&hl=en')
        valid_data = [(('q'), ('python')), (('hl'), ('en'))]

        self.assertEqual(sorted(url.queryItems()), sorted(valid_data))