1#include "talk/base/gunit.h" 2#include "talk/base/testutils.h" 3#include "talk/base/window.h" 4#include "talk/base/windowpicker.h" 5#include "talk/base/windowpickerfactory.h" 6 7#ifdef OSX 8# define DISABLE_ON_MAC(name) DISABLED_ ## name 9#else 10# define DISABLE_ON_MAC(name) name 11#endif 12 13TEST(WindowPickerTest, GetWindowList) { 14 MAYBE_SKIP_SCREENCAST_TEST(); 15 if (!talk_base::WindowPickerFactory::IsSupported()) { 16 LOG(LS_INFO) << "skipping test: window capturing is not supported with " 17 << "current configuration."; 18 } 19 talk_base::scoped_ptr<talk_base::WindowPicker> picker( 20 talk_base::WindowPickerFactory::CreateWindowPicker()); 21 EXPECT_TRUE(picker->Init()); 22 talk_base::WindowDescriptionList descriptions; 23 EXPECT_TRUE(picker->GetWindowList(&descriptions)); 24} 25 26// TODO(hughv) Investigate why this fails on pulse but not locally after 27// upgrading to XCode 4.5. The failure is GetDesktopList returning FALSE. 28TEST(WindowPickerTest, DISABLE_ON_MAC(GetDesktopList)) { 29 MAYBE_SKIP_SCREENCAST_TEST(); 30 if (!talk_base::WindowPickerFactory::IsSupported()) { 31 LOG(LS_INFO) << "skipping test: window capturing is not supported with " 32 << "current configuration."; 33 } 34 talk_base::scoped_ptr<talk_base::WindowPicker> picker( 35 talk_base::WindowPickerFactory::CreateWindowPicker()); 36 EXPECT_TRUE(picker->Init()); 37 talk_base::DesktopDescriptionList descriptions; 38 EXPECT_TRUE(picker->GetDesktopList(&descriptions)); 39 if (descriptions.size() > 0) { 40 int width = 0; 41 int height = 0; 42 EXPECT_TRUE(picker->GetDesktopDimensions(descriptions[0].id(), &width, 43 &height)); 44 EXPECT_GT(width, 0); 45 EXPECT_GT(height, 0); 46 47 // Test |IsPrimaryDesktop|. Only one desktop should be a primary. 48 bool found_primary = false; 49 for (talk_base::DesktopDescriptionList::iterator it = descriptions.begin(); 50 it != descriptions.end(); ++it) { 51 if (it->primary()) { 52 EXPECT_FALSE(found_primary); 53 found_primary = true; 54 } 55 } 56 EXPECT_TRUE(found_primary); 57 } 58} 59