blob: 8c4549ba22d284bac64c67062b322d899416f805 [file] [log] [blame]
// Copyright (c) 2012 The Chromium 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 "content/browser/accessibility/dump_accessibility_tree_helper.h"
#import <Cocoa/Cocoa.h>
#include "base/file_path.h"
#include "base/utf_string_conversions.h"
#include "content/browser/accessibility/browser_accessibility_cocoa.h"
#include "content/browser/accessibility/browser_accessibility_mac.h"
namespace {
string16 Format(BrowserAccessibility* node,
const char *prefix,
SEL selector,
const char *suffix) {
BrowserAccessibilityCocoa* cocoa_node = node->ToBrowserAccessibilityCocoa();
NSString* format_str =
[NSString stringWithFormat:@"%s%%@%s", prefix, suffix];
NSString* tmp = [NSString stringWithFormat:format_str,
[cocoa_node performSelector:selector]];
return UTF8ToUTF16([tmp cStringUsingEncoding:NSUTF8StringEncoding]);
}
}
void DumpAccessibilityTreeHelper::Initialize() {}
string16 DumpAccessibilityTreeHelper::ToString(BrowserAccessibility* node,
char* prefix) {
StartLine();
Add(true, Format(node, "", @selector(role), ""));
Add(true, Format(node, "subrole=", @selector(subrole), ""));
Add(false, Format(node, "roleDescription='",
@selector(roleDescription),
"'"));
Add(true, Format(node, "title='", @selector(title), "'"));
Add(true, Format(node, "value='", @selector(value), "'"));
Add(false, Format(node, "description='", @selector(description), "'"));
Add(false, Format(node, "help='", @selector(help), "'"));
return ASCIIToUTF16(prefix) + FinishLine() + ASCIIToUTF16("\n");
}
const FilePath::StringType DumpAccessibilityTreeHelper::GetActualFileSuffix()
const {
return FILE_PATH_LITERAL("-actual-mac.txt");
}
const FilePath::StringType DumpAccessibilityTreeHelper::GetExpectedFileSuffix()
const {
return FILE_PATH_LITERAL("-expected-mac.txt");
}
const std::string DumpAccessibilityTreeHelper::GetAllowString() const {
return "@MAC-ALLOW:";
}
const std::string DumpAccessibilityTreeHelper::GetDenyString() const {
return "@MAC-DENY:";
}