-
Notifications
You must be signed in to change notification settings - Fork 887
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[sinttest] Add roster tests that are driven by presence stanzas #519
[sinttest] Add roster tests that are driven by presence stanzas #519
Conversation
eab7e2d
to
8e22349
Compare
c9cdeb5
to
ec787f2
Compare
This PR didn't have any apparant successful CI runs. I've rebased it to the current head of the master branch, which caused a run to start (and succeed). |
ec787f2
to
a3c55cb
Compare
I've rebased this PR, to take in the latest new features available in Smack. Those have been applied to the new tests (eg: the tagging with specification references). @Flowdalic provided feedback on this commit over IM, which has also been applied. |
Note that Openfire 4.8.1. appears to have a bug that causes one of the tests added in this PR to fail: https://igniterealtime.atlassian.net/browse/OF-2822 |
4a406d6
to
3062dc1
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking good, only some minor things.
smack-integration-test/src/main/java/org/jivesoftware/smack/roster/RosterIntegrationTest.java
Outdated
Show resolved
Hide resolved
smack-integration-test/src/main/java/org/jivesoftware/smack/roster/RosterIntegrationTest.java
Outdated
Show resolved
Hide resolved
smack-integration-test/src/main/java/org/jivesoftware/smack/roster/RosterIntegrationTest.java
Outdated
Show resolved
Hide resolved
smack-integration-test/src/main/java/org/jivesoftware/smack/roster/RosterIntegrationTest.java
Outdated
Show resolved
Hide resolved
smack-integration-test/src/main/java/org/jivesoftware/smack/roster/RosterIntegrationTest.java
Outdated
Show resolved
Hide resolved
smack-integration-test/src/main/java/org/jivesoftware/smack/roster/RosterIntegrationTest.java
Outdated
Show resolved
Hide resolved
smack-integration-test/src/main/java/org/jivesoftware/smack/roster/RosterIntegrationTest.java
Outdated
Show resolved
Hide resolved
smack-integration-test/src/main/java/org/jivesoftware/smack/roster/RosterIntegrationTest.java
Outdated
Show resolved
Hide resolved
smack-integration-test/src/main/java/org/jivesoftware/smack/roster/RosterIntegrationTest.java
Outdated
Show resolved
Hide resolved
smack-integration-test/src/main/java/org/jivesoftware/smack/roster/RosterIntegrationTest.java
Outdated
Show resolved
Hide resolved
LGTM, squash please |
RFC-6121 defines server-sided behavior of the interaction between presence stanzas and rosters. This commit adds tests for that behavior.
The implementation of the test that is being removed depends on a server characteristic that will cause a loop of presence stanzas (which obviously is bad). A RFC3921-compliant client can send an 'acknowledgement' after receiving a presence 'subscribed' stanza, in the form of a presence 'subscribe' stanza. See section 8.2 of RFC3921. When a server implementation does not ignore this acknowledgement, the domain of the recipient MUST (RFC6121 section 3.1.3) respond with a 'subscribed' on behalf of the recipient (which is what the now removed test was verifying). This can trigger the RFC3921-compliant sender to again receive 'subscribed', that it again can acknowledge, which causes a loop. To test RFC6121, the subscription state of the recipient must somehow be modified to reflect a different state than that of the initiator. I'm not sure if that is feasible with the SINT framework.
253d469
to
ad75681
Compare
Squashed. I've left the removal of one test as a distinct commit, as the commit message documents the rationale. |
RFC-6121 defines server-sided behavior of the interaction between presence stanzas and rosters.
This commit adds tests for that behavior.