MCPcopy Create free account
hub / github.com/couchbase/sync_gateway / TestReplicatorRevocationsNoRev

Function TestReplicatorRevocationsNoRev

rest/revocation_test.go:1569–1639  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1567}
1568
1569func TestReplicatorRevocationsNoRev(t *testing.T) {
1570 base.RequireNumTestBuckets(t, 2)
1571
1572 sgrRunner := NewSGRTestRunner(t)
1573 sgrRunner.Run(func(t *testing.T) {
1574 // Passive
1575 revocationTester, rt2 := InitScenario(t, nil)
1576 defer rt2.Close()
1577
1578 // Active
1579 rt1 := NewRestTester(t,
1580 &RestTesterConfig{
1581 CustomTestBucket: base.GetTestBucket(t),
1582 SyncFn: channels.DocChannelsSyncFunction,
1583 })
1584 defer rt1.Close()
1585 ctx1 := rt1.Context()
1586
1587 revocationTester.addRole("user", "foo")
1588 revocationTester.addRoleChannel("foo", "chanA")
1589
1590 const doc1ID = "doc1"
1591 doc1Version := rt2.PutDoc(doc1ID, `{"channels": "chanA"}`)
1592 rt2.WaitForPendingChanges()
1593
1594 srv := httptest.NewServer(rt2.TestPublicHandler())
1595 defer srv.Close()
1596
1597 passiveDBURL, err := url.Parse(srv.URL + "/db")
1598 require.NoError(t, err)
1599
1600 passiveDBURL.User = url.UserPassword("user", RestTesterDefaultUserPassword)
1601 id := SafeDocumentName(t, t.Name())
1602 sgwStats, err := base.SyncGatewayStats.NewDBStats(id, false, false, false, nil, nil)
1603 require.NoError(t, err)
1604 dbstats, err := sgwStats.DBReplicatorStats(id)
1605 require.NoError(t, err)
1606
1607 ar, err := db.NewActiveReplicator(ctx1, &db.ActiveReplicatorConfig{
1608 ID: id,
1609 Direction: db.ActiveReplicatorTypePull,
1610 RemoteDBURL: passiveDBURL,
1611 ActiveDB: &db.Database{
1612 DatabaseContext: rt1.GetDatabase(),
1613 },
1614 Continuous: false,
1615 PurgeOnRemoval: true,
1616 ReplicationStatsMap: dbstats,
1617 CollectionsEnabled: base.TestsUseNamedCollections(),
1618 SupportedBLIPProtocols: sgrRunner.SupportedSubprotocols,
1619 })
1620 require.NoError(t, err)
1621
1622 require.NoError(t, ar.Start(ctx1))
1623 rt1.WaitForReplicationStatus(ar.ID, db.ReplicationStateStopped)
1624
1625 resp := rt1.SendAdminRequest("GET", "/{{.keyspace}}/doc1", "")
1626 RequireStatus(t, resp, http.StatusOK)

Callers

nothing calls this directly

Calls 15

RunMethod · 0.95
CloseMethod · 0.95
ContextMethod · 0.95
GetDatabaseMethod · 0.95
StartMethod · 0.95
SendAdminRequestMethod · 0.95
RequireNumTestBucketsFunction · 0.92
GetTestBucketFunction · 0.92
NewActiveReplicatorFunction · 0.92
TestsUseNamedCollectionsFunction · 0.92
NewSGRTestRunnerFunction · 0.85

Tested by

no test coverage detected