Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(79)

Unified Diff: components/copresence/handlers/directive_handler_unittest.cc

Issue 718303002: GCM Directive fix (M40 merge) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2214
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/copresence/handlers/directive_handler.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/copresence/handlers/directive_handler_unittest.cc
diff --git a/components/copresence/handlers/directive_handler_unittest.cc b/components/copresence/handlers/directive_handler_unittest.cc
index 30a0a9672d2afa00e287bcc1ea54e6dd25107e38..c388b72f72c98b6a2ce269c31f2eb4b2fbcc42a0 100644
--- a/components/copresence/handlers/directive_handler_unittest.cc
+++ b/components/copresence/handlers/directive_handler_unittest.cc
@@ -13,15 +13,25 @@
using testing::ElementsAre;
using testing::IsEmpty;
+namespace {
+
+const int64 kMaxUnlabeledTtl = 60000; // 1 minute
+const int64 kExcessiveUnlabeledTtl = 120000; // 2 minutes
+const int64 kDefaultTtl = 600000; // 10 minutes
+
+} // namespace
+
namespace copresence {
Directive CreateDirective(const std::string& publish_id,
const std::string& subscribe_id,
- const std::string& token) {
+ const std::string& token,
+ int64 ttl_ms) {
Directive directive;
directive.set_instruction_type(TOKEN);
directive.set_published_message_id(publish_id);
directive.set_subscription_id(subscribe_id);
+ directive.set_ttl_millis(ttl_ms);
TokenInstruction* instruction = new TokenInstruction;
instruction->set_token_id(token);
@@ -31,6 +41,12 @@ Directive CreateDirective(const std::string& publish_id,
return directive;
}
+Directive CreateDirective(const std::string& publish_id,
+ const std::string& subscribe_id,
+ const std::string& token) {
+ return CreateDirective(publish_id, subscribe_id, token, kDefaultTtl);
+}
+
class FakeAudioDirectiveHandler final : public AudioDirectiveHandler {
public:
FakeAudioDirectiveHandler() {}
@@ -40,8 +56,9 @@ class FakeAudioDirectiveHandler final : public AudioDirectiveHandler {
void AddInstruction(const TokenInstruction& instruction,
const std::string& /* op_id */,
- base::TimeDelta /* ttl_ms */) override {
+ base::TimeDelta ttl) override {
added_tokens_.push_back(instruction.token_id());
+ added_ttls_.push_back(ttl.InMilliseconds());
}
void RemoveInstructions(const std::string& op_id) override {
@@ -62,12 +79,17 @@ class FakeAudioDirectiveHandler final : public AudioDirectiveHandler {
return added_tokens_;
}
+ const std::vector<int64>& added_ttls() const {
+ return added_ttls_;
+ }
+
const std::vector<std::string>& removed_operations() const {
return removed_operations_;
}
private:
std::vector<std::string> added_tokens_;
+ std::vector<int64> added_ttls_;
std::vector<std::string> removed_operations_;
};
@@ -80,11 +102,25 @@ class DirectiveHandlerTest : public testing::Test {
make_scoped_ptr<AudioDirectiveHandler>(audio_handler_)) {}
protected:
+ void StartDirectiveHandler() {
+ directive_handler_.Start(whispernet_client_.get(), TokensCallback());
+ }
+
scoped_ptr<WhispernetClient> whispernet_client_;
FakeAudioDirectiveHandler* audio_handler_;
DirectiveHandler directive_handler_;
};
+TEST_F(DirectiveHandlerTest, DirectiveTtl) {
+ StartDirectiveHandler();
+ directive_handler_.AddDirective(
+ CreateDirective("", "", "token 1", kMaxUnlabeledTtl));
+ directive_handler_.AddDirective(
+ CreateDirective("", "", "token 2", kExcessiveUnlabeledTtl));
+ EXPECT_THAT(audio_handler_->added_ttls(),
+ ElementsAre(kMaxUnlabeledTtl, kMaxUnlabeledTtl));
+}
+
TEST_F(DirectiveHandlerTest, Queuing) {
directive_handler_.AddDirective(CreateDirective("id 1", "", "token 1"));
directive_handler_.AddDirective(CreateDirective("", "id 1", "token 2"));
@@ -94,10 +130,11 @@ TEST_F(DirectiveHandlerTest, Queuing) {
EXPECT_THAT(audio_handler_->added_tokens(), IsEmpty());
EXPECT_THAT(audio_handler_->removed_operations(), IsEmpty());
- directive_handler_.Start(whispernet_client_.get(), TokensCallback());
+ StartDirectiveHandler();
directive_handler_.RemoveDirectives("id 3");
EXPECT_THAT(audio_handler_->added_tokens(), ElementsAre("token 3"));
+ EXPECT_THAT(audio_handler_->added_ttls(), ElementsAre(kDefaultTtl));
EXPECT_THAT(audio_handler_->removed_operations(), ElementsAre("id 3"));
}
« no previous file with comments | « components/copresence/handlers/directive_handler.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698