| // Copyright 2018 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include <gtest/gtest.h> |
| |
| #include "smbprovider/fake_samba_interface.h" |
| #include "smbprovider/iterator/share_iterator.h" |
| #include "smbprovider/smbprovider_test_helper.h" |
| |
| namespace smbprovider { |
| |
| class ShareIteratorTest : public testing::Test { |
| public: |
| ShareIteratorTest() = default; |
| ~ShareIteratorTest() override = default; |
| |
| protected: |
| void CreateHost() { fake_samba_.AddDirectory(GetDefaultServer()); } |
| |
| FakeSambaInterface fake_samba_; |
| |
| private: |
| DISALLOW_COPY_AND_ASSIGN(ShareIteratorTest); |
| }; |
| |
| TEST_F(ShareIteratorTest, InitSucceedsOnHostWithNoShares) { |
| CreateHost(); |
| |
| ShareIterator it(GetDefaultServer(), &fake_samba_); |
| |
| EXPECT_EQ(0, it.Init()); |
| EXPECT_TRUE(it.IsDone()); |
| } |
| |
| TEST_F(ShareIteratorTest, InitSucceedsOnHostWithShare) { |
| CreateHost(); |
| |
| fake_samba_.AddEntry("smb://wdshare/share1", SMBC_FILE_SHARE); |
| |
| ShareIterator it(GetDefaultServer(), &fake_samba_); |
| |
| EXPECT_EQ(0, it.Init()); |
| EXPECT_FALSE(it.IsDone()); |
| EXPECT_EQ("share1", it.Get().name); |
| } |
| |
| TEST_F(ShareIteratorTest, ShouldOnlyReturnShareType) { |
| CreateHost(); |
| |
| fake_samba_.AddEntry("smb://wdshare/share1", SMBC_FILE_SHARE); |
| fake_samba_.AddDirectory("smb://wdshare/folder"); |
| |
| ShareIterator it(GetDefaultServer(), &fake_samba_); |
| |
| EXPECT_EQ(0, it.Init()); |
| EXPECT_FALSE(it.IsDone()); |
| |
| const DirectoryEntry& share = it.Get(); |
| EXPECT_EQ("share1", share.name); |
| EXPECT_EQ("smb://wdshare/share1", share.full_path); |
| EXPECT_TRUE(share.is_directory); |
| EXPECT_EQ(-1, share.size); |
| EXPECT_EQ(-1, share.last_modified_time); |
| |
| // Should be empty since there is only one SMBC_FILE_SHARE in the host. |
| EXPECT_EQ(0, it.Next()); |
| EXPECT_TRUE(it.IsDone()); |
| } |
| |
| } // namespace smbprovider |