#!/usr/bin/python # -*- coding: utf-8 -*- # SAT: a jabber client # Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015 Jérôme Poisson (goffi@goffi.org) # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program 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 Affero General Public License for more details. # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . """ Plugin XEP-0277 tests """ from sat.test import helpers from sat.plugins import plugin_xep_0277 from sat.plugins import plugin_misc_text_syntaxes from sat.tools.xml_tools import ElementParser class XEP_0277Test(helpers.SatTestCase): PUBSUB_ENTRY_1 = """ <span>titre</span> c745a688-9b02-11e3-a1a3-c0143dd4fe51 2014-02-21T16:16:39+02:00 2014-02-21T16:16:38+02:00 <p>contenu</p>texte sans balise<p>autre contenu</p>

contenu

texte sans balise

autre contenu

test1@souliane.org
""" % plugin_xep_0277.NS_PUBSUB PUBSUB_ENTRY_2 = """ <div>titre</div> <div xmlns="http://www.w3.org/1999/xhtml"><div style="background-image: url('xxx');">titre</div></div> c745a688-9b02-11e3-a1a3-c0143dd4fe51 2014-02-21T16:16:39+02:00 2014-02-21T16:16:38+02:00 <div><p>contenu</p>texte dans balise<p>autre contenu</p></div>

contenu

texte dans balise

autre contenu

test1@souliane.org
""" % plugin_xep_0277.NS_PUBSUB def setUp(self): self.host = helpers.FakeSAT() class XEP_0163(object): def __init__(self, host): pass def addPEPEvent(self, *args): pass self.host.plugins["XEP-0163"] = XEP_0163(self.host) self.host.plugins["TEXT-SYNTAXES"] = plugin_misc_text_syntaxes.TextSyntaxes(self.host) self.plugin = plugin_xep_0277.XEP_0277(self.host) def test_item2mbdata_1(self): expected = {'id': 'c745a688-9b02-11e3-a1a3-c0143dd4fe51', 'title': 'titre', 'updated': '1392992199.0', 'published': '1392992198.0', 'content': '

contenu

texte sans balise

autre contenu

', 'content_xhtml': '

contenu

texte sans balise

autre contenu

', 'author': 'test1@souliane.org' } d = self.plugin.item2mbdata(ElementParser()(self.PUBSUB_ENTRY_1)) d.addCallback(self.assertEqual, expected) return d def test_item2mbdata_2(self): expected = {'id': 'c745a688-9b02-11e3-a1a3-c0143dd4fe51', 'title': '
titre
', 'title_xhtml': '
titre
', 'updated': '1392992199.0', 'published': '1392992198.0', 'content': '

contenu

texte dans balise

autre contenu

', 'content_xhtml': '

contenu

texte dans balise

autre contenu

', 'author': 'test1@souliane.org' } d = self.plugin.item2mbdata(ElementParser()(self.PUBSUB_ENTRY_2)) d.addCallback(self.assertEqual, expected) return d