1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33

content / browser / web_contents / web_drag_source_mac_unittest.mm [blame]

// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#import "content/app_shim_remote_cocoa/web_drag_source_mac.h"

#include "base/apple/foundation_util.h"
#include "content/public/common/drop_data.h"
#include "content/public/test/test_renderer_host.h"
#include "testing/gtest_mac.h"
#include "url/origin.h"

namespace content {

using WebDragSourceMacTest = RenderViewHostTestHarness;

TEST_F(WebDragSourceMacTest, DragInvalidlyEscapedBookmarklet) {
  DropData drop_data;
  drop_data.url = GURL("javascript:%");

  WebDragSource* source = [[WebDragSource alloc] initWithHost:nullptr
                                                     dropData:drop_data
                                                 sourceOrigin:url::Origin()
                                                 isPrivileged:NO];

  // Test that asking for the data of an invalidly-escaped URL doesn't throw any
  // exceptions. http://crbug.com/128371
  id result = [source pasteboardPropertyListForType:NSPasteboardTypeURL];
  NSString* result_string = base::apple::ObjCCast<NSString>(result);
  EXPECT_NSEQ(@"javascript:%25", result_string);
}

}  // namespace content