| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "remoting/host/resizing_host_observer.h" | |
| 6 #include "remoting/host/desktop_resizer.h" | |
| 7 | |
| 8 #include <list> | 5 #include <list> |
| 9 | 6 |
| 10 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
| 11 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "remoting/host/desktop_resizer.h" |
| 10 #include "remoting/host/host_status_monitor_fake.h" |
| 11 #include "remoting/host/resizing_host_observer.h" |
| 12 #include "testing/gtest/include/gtest/gtest.h" | 12 #include "testing/gtest/include/gtest/gtest.h" |
| 13 #include "third_party/skia/include/core/SkSize.h" | 13 #include "third_party/skia/include/core/SkSize.h" |
| 14 | 14 |
| 15 std::ostream& operator<<(std::ostream& os, const SkISize& size) { | 15 std::ostream& operator<<(std::ostream& os, const SkISize& size) { |
| 16 return os << size.width() << "x" << size.height(); | 16 return os << size.width() << "x" << size.height(); |
| 17 } | 17 } |
| 18 | 18 |
| 19 namespace remoting { | 19 namespace remoting { |
| 20 | 20 |
| 21 class FakeDesktopResizer : public DesktopResizer { | 21 class FakeDesktopResizer : public DesktopResizer { |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 bool exact_size_supported_; | 60 bool exact_size_supported_; |
| 61 std::list<SkISize> supported_sizes_; | 61 std::list<SkISize> supported_sizes_; |
| 62 | 62 |
| 63 int set_size_call_count_; | 63 int set_size_call_count_; |
| 64 }; | 64 }; |
| 65 | 65 |
| 66 class ResizingHostObserverTest : public testing::Test { | 66 class ResizingHostObserverTest : public testing::Test { |
| 67 public: | 67 public: |
| 68 void SetDesktopResizer(FakeDesktopResizer* desktop_resizer) { | 68 void SetDesktopResizer(FakeDesktopResizer* desktop_resizer) { |
| 69 CHECK(!desktop_resizer_.get()) << "Call SetDeskopResizer once per test"; | 69 CHECK(!desktop_resizer_.get()) << "Call SetDeskopResizer once per test"; |
| 70 resizing_host_observer_.reset(new ResizingHostObserver(desktop_resizer, | 70 resizing_host_observer_.reset( |
| 71 NULL)); | 71 new ResizingHostObserver(desktop_resizer, |
| 72 host_status_monitor_.AsWeakPtr())); |
| 72 desktop_resizer_.reset(desktop_resizer); | 73 desktop_resizer_.reset(desktop_resizer); |
| 73 resizing_host_observer_->OnClientAuthenticated(""); | 74 resizing_host_observer_->OnClientAuthenticated(""); |
| 74 } | 75 } |
| 75 | 76 |
| 76 SkISize GetBestSize(const SkISize& client_size) { | 77 SkISize GetBestSize(const SkISize& client_size) { |
| 77 resizing_host_observer_->OnClientResolutionChanged( | 78 resizing_host_observer_->OnClientResolutionChanged( |
| 78 "", client_size, SkIPoint()); | 79 "", client_size, SkIPoint()); |
| 79 return desktop_resizer_->GetCurrentSize(); | 80 return desktop_resizer_->GetCurrentSize(); |
| 80 } | 81 } |
| 81 | 82 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 96 // testing::Test interface | 97 // testing::Test interface |
| 97 virtual void TearDown() OVERRIDE { | 98 virtual void TearDown() OVERRIDE { |
| 98 resizing_host_observer_->OnClientDisconnected(""); | 99 resizing_host_observer_->OnClientDisconnected(""); |
| 99 EXPECT_EQ(desktop_resizer_->initial_size(), | 100 EXPECT_EQ(desktop_resizer_->initial_size(), |
| 100 desktop_resizer_->GetCurrentSize()); | 101 desktop_resizer_->GetCurrentSize()); |
| 101 } | 102 } |
| 102 | 103 |
| 103 private: | 104 private: |
| 104 scoped_ptr<ResizingHostObserver> resizing_host_observer_; | 105 scoped_ptr<ResizingHostObserver> resizing_host_observer_; |
| 105 scoped_ptr<FakeDesktopResizer> desktop_resizer_; | 106 scoped_ptr<FakeDesktopResizer> desktop_resizer_; |
| 107 HostStatusMonitorFake host_status_monitor_; |
| 106 }; | 108 }; |
| 107 | 109 |
| 108 // Check that the host is not resized if GetSupportedSizes returns an empty | 110 // Check that the host is not resized if GetSupportedSizes returns an empty |
| 109 // list (even if GetCurrentSize is supported). | 111 // list (even if GetCurrentSize is supported). |
| 110 TEST_F(ResizingHostObserverTest, EmptyGetSupportedSizes) { | 112 TEST_F(ResizingHostObserverTest, EmptyGetSupportedSizes) { |
| 111 SkISize initial = { 640, 480 }; | 113 SkISize initial = { 640, 480 }; |
| 112 SetDesktopResizer( | 114 SetDesktopResizer( |
| 113 new FakeDesktopResizer(initial, false, NULL, 0)); | 115 new FakeDesktopResizer(initial, false, NULL, 0)); |
| 114 SkISize client_sizes[] = { { 200, 100 }, { 100, 200 } }; | 116 SkISize client_sizes[] = { { 200, 100 }, { 100, 200 } }; |
| 115 SkISize expected_sizes[] = { initial, initial }; | 117 SkISize expected_sizes[] = { initial, initial }; |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 176 new FakeDesktopResizer(SkISize::Make(640, 480), false, | 178 new FakeDesktopResizer(SkISize::Make(640, 480), false, |
| 177 supported_sizes, arraysize(supported_sizes)); | 179 supported_sizes, arraysize(supported_sizes)); |
| 178 SetDesktopResizer(desktop_resizer); | 180 SetDesktopResizer(desktop_resizer); |
| 179 SkISize client_sizes[] = { { 640, 640 }, { 1024, 768 }, { 640, 480 } }; | 181 SkISize client_sizes[] = { { 640, 640 }, { 1024, 768 }, { 640, 480 } }; |
| 180 SkISize expected_sizes[] = { { 640, 480 }, { 640, 480 }, { 640, 480 } }; | 182 SkISize expected_sizes[] = { { 640, 480 }, { 640, 480 }, { 640, 480 } }; |
| 181 VerifySizes(client_sizes, expected_sizes, arraysize(client_sizes)); | 183 VerifySizes(client_sizes, expected_sizes, arraysize(client_sizes)); |
| 182 EXPECT_EQ(desktop_resizer->set_size_call_count(), 0); | 184 EXPECT_EQ(desktop_resizer->set_size_call_count(), 0); |
| 183 } | 185 } |
| 184 | 186 |
| 185 } // namespace remoting | 187 } // namespace remoting |
| OLD | NEW |