Skip to content

Commit 8affcd4

Browse files
committed
Fix IP Filter implementation and test suite formatting
1 parent 5936475 commit 8affcd4

3 files changed

Lines changed: 69 additions & 23 deletions

File tree

Storage/tests/System/ManageBucketsTest.php

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -627,20 +627,26 @@ public function testCreateBucketWithIpFilterDisabled()
627627
* @depends testCreateBucketWithIpFilterDisabled
628628
* @group storage-ipfilter
629629
*/
630-
public function testDeleteBucketIpFilter(Bucket $bucket)
630+
public function testUpdateIpFilterDisabled(Bucket $bucket)
631631
{
632632
$ipFilterConfig = [
633633
'mode' => 'Disabled',
634634
'publicNetworkSource' => [
635-
'allowedIpCidrRanges' => []
635+
'allowedIpCidrRanges' => ['1.2.3.0/24', '5.6.7.0/24']
636636
],
637-
'allowAllServiceAgentAccess' => true
637+
'allowAllServiceAgentAccess' => false
638638
];
639639

640640
$bucket->update(['ipFilter' => $ipFilterConfig]);
641641
$info = $bucket->reload();
642642

643-
$this->assertArrayNotHasKey('allowedIpCidrRanges', $info['ipFilter']['publicNetworkSource']);
643+
$this->assertArrayHasKey('ipFilter', $info);
644+
$this->assertEquals('Disabled', $info['ipFilter']['mode']);
645+
$this->assertEquals(
646+
['1.2.3.0/24', '5.6.7.0/24'],
647+
$info['ipFilter']['publicNetworkSource']['allowedIpCidrRanges']
648+
);
649+
$this->assertFalse($info['ipFilter']['allowAllServiceAgentAccess']);
644650
}
645651

646652
/**
@@ -721,6 +727,28 @@ public function testGetBucketWithIpFilter()
721727
);
722728
}
723729

730+
/**
731+
* @group storage-ipfilter
732+
* @depends testCreateBucketWithIpFilterDisabled
733+
*/
734+
public function testDeleteBucketIpFilter(Bucket $bucket)
735+
{
736+
$ipFilterConfig = [
737+
'mode' => 'Disabled',
738+
'publicNetworkSource' => [
739+
'allowedIpCidrRanges' => []
740+
],
741+
'allowAllServiceAgentAccess' => true
742+
];
743+
744+
$bucket->update(['ipFilter' => $ipFilterConfig]);
745+
$info = $bucket->reload();
746+
747+
$this->assertArrayHasKey('ipFilter', $info);
748+
$this->assertEquals('Disabled', $info['ipFilter']['mode']);
749+
$this->assertArrayNotHasKey('allowedIpCidrRanges', $info['ipFilter']['publicNetworkSource']);
750+
}
751+
724752
/**
725753
* @group storage-ipfilter
726754
*/
@@ -766,8 +794,5 @@ public function testBucketAccessWhenEnforced()
766794
$this->assertEquals(403, $e->getCode());
767795
$this->assertStringContainsString('IP filtering', $e->getMessage());
768796
}
769-
770-
$object->delete();
771-
$bucket->delete();
772797
}
773798
}

Storage/tests/Unit/BucketTest.php

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -765,30 +765,22 @@ public function testDisableBucketIpFilter()
765765

766766
public function testDeleteBucketIpFilter()
767767
{
768-
$ipFilterConfig = [
769-
'mode' => 'Disabled',
770-
'publicNetworkSource' => [
771-
'allowedIpCidrRanges' => ['1.2.3.0/24'] // Simulating deletion of an IP range
772-
],
773-
'allowAllServiceAgentAccess' => true
774-
];
775-
776768
$bucketInfo = [
777-
'name' => self::BUCKET_NAME,
778-
'ipFilter' => $ipFilterConfig
769+
'name' => self::BUCKET_NAME
779770
];
780771

781-
$this->connection->patchBucket(Argument::withEntry('ipFilter', $ipFilterConfig))
772+
$this->connection->patchBucket(Argument::withEntry('ipFilter', [
773+
'publicNetworkSource' => [
774+
'allowedIpCidrRanges' => []
775+
]
776+
]))
782777
->shouldBeCalled()
783778
->willReturn($bucketInfo);
784779

785780
$bucket = $this->getBucket();
786-
$info = $bucket->update(['ipFilter' => $ipFilterConfig]);
781+
$info = $bucket->update(['ipFilter' => ['publicNetworkSource' => ['allowedIpCidrRanges' => []]]]);
787782

788-
$this->assertEquals(
789-
['1.2.3.0/24'],
790-
$info['ipFilter']['publicNetworkSource']['allowedIpCidrRanges']
791-
);
783+
$this->assertArrayNotHasKey('ipFilter', $info);
792784
}
793785

794786
public function testGetsInfo()

Storage/tests/Unit/StorageClientTest.php

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,35 @@ public function testGetsBucketsWithoutToken()
130130
$this->assertEquals('bucket1', $buckets[0]->name());
131131
}
132132

133+
public function testGetsBucketsWithIpFilter()
134+
{
135+
$ipFilterConfig = [
136+
'mode' => 'Enabled',
137+
'publicNetworkSource' => [
138+
'allowedIpCidrRanges' => ['1.2.3.4/32']
139+
]
140+
];
141+
142+
$this->connection->listBuckets(Argument::any())->willReturn([
143+
'items' => [
144+
['name' => 'bucket1', 'ipFilter' => $ipFilterConfig]
145+
]
146+
]);
147+
$this->connection->projectId()
148+
->willReturn(self::PROJECT);
149+
150+
$this->client->___setProperty('connection', $this->connection->reveal());
151+
$buckets = iterator_to_array($this->client->buckets());
152+
153+
$this->assertEquals('bucket1', $buckets[0]->name());
154+
$this->assertArrayHasKey('ipFilter', $buckets[0]->info());
155+
$this->assertEquals('Enabled', $buckets[0]->info()['ipFilter']['mode']);
156+
$this->assertEquals(
157+
['1.2.3.4/32'],
158+
$buckets[0]->info()['ipFilter']['publicNetworkSource']['allowedIpCidrRanges']
159+
);
160+
}
161+
133162
public function testGetsBucketsWithToken()
134163
{
135164
$this->connection->listBuckets(Argument::any())

0 commit comments

Comments
 (0)