Add privet API tests for local auth
BUG=25768507
Change-Id: I7b86ca2af97652240ea7e4286eedf25160d31af5
Reviewed-on: https://weave-review.googlesource.com/2060
Reviewed-by: Alex Vakulenko <avakulenko@google.com>
diff --git a/src/privet/privet_handler_unittest.cc b/src/privet/privet_handler_unittest.cc
index 7c9cf33..5c3c0d0 100644
--- a/src/privet/privet_handler_unittest.cc
+++ b/src/privet/privet_handler_unittest.cc
@@ -425,6 +425,67 @@
EXPECT_JSON_EQ(kExpected, HandleRequest("/privet/v3/auth", kInput));
}
+TEST_F(PrivetHandlerTest, AuthLocalAuto) {
+ EXPECT_CALL(security_, IsValidPairingCode("testToken"))
+ .WillRepeatedly(Return(true));
+ EXPECT_CALL(security_, CreateAccessToken(_, _, _, _, _, _, _))
+ .WillRepeatedly(DoAll(SetArgPointee<3>("UserAccessToken"),
+ SetArgPointee<4>(AuthScope::kUser),
+ SetArgPointee<5>(base::TimeDelta::FromSeconds(15)),
+ Return(true)));
+ const char kInput[] = R"({
+ 'mode': 'local',
+ 'requestedScope': 'auto',
+ 'authCode': 'localAuthToken'
+ })";
+ const char kExpected[] = R"({
+ 'accessToken': 'UserAccessToken',
+ 'expiresIn': 15,
+ 'scope': 'user',
+ 'tokenType': 'Privet'
+ })";
+ EXPECT_JSON_EQ(kExpected, HandleRequest("/privet/v3/auth", kInput));
+}
+
+TEST_F(PrivetHandlerTest, AuthLocal) {
+ EXPECT_CALL(security_, IsValidPairingCode("testToken"))
+ .WillRepeatedly(Return(true));
+ EXPECT_CALL(security_, CreateAccessToken(_, _, _, _, _, _, _))
+ .WillRepeatedly(DoAll(SetArgPointee<3>("ManagerAccessToken"),
+ SetArgPointee<4>(AuthScope::kManager),
+ SetArgPointee<5>(base::TimeDelta::FromSeconds(15)),
+ Return(true)));
+ const char kInput[] = R"({
+ 'mode': 'local',
+ 'requestedScope': 'manager',
+ 'authCode': 'localAuthToken'
+ })";
+ const char kExpected[] = R"({
+ 'accessToken': 'ManagerAccessToken',
+ 'expiresIn': 15,
+ 'scope': 'manager',
+ 'tokenType': 'Privet'
+ })";
+ EXPECT_JSON_EQ(kExpected, HandleRequest("/privet/v3/auth", kInput));
+}
+
+TEST_F(PrivetHandlerTest, AuthLocalHighScope) {
+ EXPECT_CALL(security_, IsValidPairingCode("testToken"))
+ .WillRepeatedly(Return(true));
+ EXPECT_CALL(security_, CreateAccessToken(_, _, _, _, _, _, _))
+ .WillRepeatedly(DoAll(SetArgPointee<3>("UserAccessToken"),
+ SetArgPointee<4>(AuthScope::kUser),
+ SetArgPointee<5>(base::TimeDelta::FromSeconds(1)),
+ Return(true)));
+ const char kInput[] = R"({
+ 'mode': 'local',
+ 'requestedScope': 'manager',
+ 'authCode': 'localAuthToken'
+ })";
+ EXPECT_PRED2(IsEqualError, CodeWithReason(403, "accessDenied"),
+ HandleRequest("/privet/v3/auth", kInput));
+}
+
class PrivetHandlerTestWithAuth : public PrivetHandlerTest {
public:
void SetUp() override {