2424import org .jivesoftware .smack .SmackException .NoResponseException ;
2525import org .jivesoftware .smack .SmackException .NotConnectedException ;
2626import org .jivesoftware .smack .SmackException .NotLoggedInException ;
27+ import org .jivesoftware .smack .StanzaListener ;
2728import org .jivesoftware .smack .XMPPException .XMPPErrorException ;
29+ import org .jivesoftware .smack .filter .StanzaFilter ;
30+ import org .jivesoftware .smack .packet .Presence ;
31+ import org .jivesoftware .smack .packet .Stanza ;
32+ import org .jivesoftware .smackx .caps2 .element .Caps2Element ;
2833import org .jivesoftware .smackx .disco .ServiceDiscoveryManager ;
2934
3035import org .igniterealtime .smack .inttest .AbstractSmackIntegrationTest ;
3338import org .igniterealtime .smack .inttest .annotations .BeforeClass ;
3439import org .igniterealtime .smack .inttest .annotations .SmackIntegrationTest ;
3540import org .igniterealtime .smack .inttest .util .IntegrationTestRosterUtil ;
41+ import org .igniterealtime .smack .inttest .util .SimpleResultSyncPoint ;
3642
3743public class EntityCaps2IntegrationTest extends AbstractSmackIntegrationTest {
3844
3945 @ SuppressWarnings ("unused" )
4046 private final Caps2Manager caps2Man1 ;
47+
4148 @ SuppressWarnings ("unused" )
42- private final ServiceDiscoveryManager sdm1 ;
49+ private final ServiceDiscoveryManager sdm2 ;
4350
4451 private final Set <String > dummyFeatures = new HashSet <>();
4552 private final AtomicInteger dummyFeatureId = new AtomicInteger ();
4653
4754 public EntityCaps2IntegrationTest (SmackIntegrationTestEnvironment environment ) {
4855 super (environment );
4956 caps2Man1 = Caps2Manager .getInstanceFor (environment .conOne );
50- sdm1 = ServiceDiscoveryManager .getInstanceFor (conOne );
57+ sdm2 = ServiceDiscoveryManager .getInstanceFor (conTwo );
58+ }
59+
60+ @ SmackIntegrationTest
61+ public void getEntityCapability () throws Exception {
62+ final SimpleResultSyncPoint entityCaps2Received = new SimpleResultSyncPoint ();
63+
64+ StanzaListener stanzaListener = new StanzaListener () {
65+ @ Override
66+ public void processStanza (Stanza packet ) throws NotConnectedException , InterruptedException , NotLoggedInException {
67+ Presence presence = (Presence ) packet ;
68+ if (presence .hasExtension (Caps2Element .class )) {
69+ Logger .getAnonymousLogger ().info ("\n \n \n adiaholic caps2Element : " + packet .toXML ());
70+ entityCaps2Received .signal ();
71+ }
72+ }
73+ };
74+ conTwo .addStanzaListener (stanzaListener , new StanzaFilter () {
75+ @ Override
76+ public boolean accept (Stanza stanza ) {
77+ if (stanza instanceof Presence ) {
78+ return true ;
79+ }
80+ return false ;
81+ }
82+ });
83+ try {
84+ caps2Man1 .publishEntityCapabilities ();
85+ entityCaps2Received .waitForResult (timeout );
86+ } finally {
87+ conTwo .removeStanzaListener (stanzaListener );
88+ }
5189 }
5290
5391 @ BeforeClass
@@ -67,11 +105,4 @@ private String getNewDummyFeature() {
67105 Logger .getAnonymousLogger ().warning ("adiaholic: dummy feature created: " + dummyFeature );
68106 return dummyFeature ;
69107 }
70-
71- @ SmackIntegrationTest
72- public void waitToPublishFeature () throws Exception {
73- Logger .getAnonymousLogger ().warning ("adiaholic: publishing feature" );
74-
75- Logger .getAnonymousLogger ().warning ("adiaholic: feature published" );
76- }
77108}
0 commit comments