Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1130)

Unified Diff: chrome/browser/extensions/api/README.txt

Issue 10388192: Initial unit tests for the discovery API. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/README.txt
diff --git a/chrome/browser/extensions/api/README.txt b/chrome/browser/extensions/api/README.txt
index f15e24307758be1973bdf5dbce23ca98ca171b28..74d72d6295f00b1c89765b8cf3522bab77941de0 100644
--- a/chrome/browser/extensions/api/README.txt
+++ b/chrome/browser/extensions/api/README.txt
@@ -19,16 +19,20 @@ Create "chrome/common/extensions/api/experimental_foo.json". For inspiration
look at the "app" API. Include descriptions fields to generate the
documentation.
-2) Add your API specification to the project.
+2) Add your API specification to extensions_api_resources.grd.
Add an "<include ...>" line with your JSON specification file to
"chrome/common/extensions_api_resources.grd".
-3) Write the API function handlers.
+3) Add your API specification to api.gyp.
+Add "experimental_foo.json" to the "json_schema_files" section in
+"chrome/common/extensions/api/api.gyp".
+
+4) Write the API function handlers.
Create foo_api.cc and foo_api.h under "chrome/browser/extensions/api/foo". You
-should use the JSON Schema Compiler. Look at the "alarms_api.cc" for details on
-how to do that.
+should use the JSON Schema Compiler. Look at the "permissions_api.cc" for
+details on how to do that.
-4) Register function handlers.
+5) Register function handlers.
In "chrome/browser/extensions/extension_function_registry.cc" include foo_api.h
and instantiate a RegisterFunction for each function you created in (3).
@@ -40,7 +44,7 @@ Create "chrome/common/extensions/api/experimental_foo.idl". For inspiration look
at "alarms.idl". Include comments, they will be used to automatically generate
the documentation.
-2) Add your API specification to the project.
+2) Add your API specification to api.gyp.
Add "experimental_foo.idl" to the "idl_schema_files" section in
"chrome/common/extensions/api/api.gyp".
@@ -49,34 +53,34 @@ Create foo_api.cc and foo_api.h under "chrome/browser/extensions/api/foo". You
should use the JSON Schema Compiler. Look at the "alarms_api.cc" for details on
how to do that.
-4) Nothing to do! Function handlers are automatically registered for you.
+4-5) Nothing to do! Function handlers are automatically registered for you.
--------------------------------------------------------------------------------
STEPS COMMON TO BOTH APPROACHES
-5) Write support classes for your API
+6) Write support classes for your API
If your API needs any support classes add them to
"chrome/browser/extensions/api/foo". Some old APIs added their support classes
directly to chrome/browser/extensions. Don't do that.
-6) Update the project with your new files.
+7) Update the project with your new files.
The files you created in (3) and (5) should be added to
"chrome/chrome_browser_extensions.gypi".
--------------------------------------------------------------------------------
GENERATING DOCUMENTATION
-7) Build the project. (Only required if you used IDL files.)
+8) Build the project. (Only required if you used IDL files.)
If you used IDL files, you need to build the project once in order for the
documentation to be properly generated. Do this now. (This is required in order
to generate the JSON file used to generate documentation.)
-8) Add your JSON file to the documentation controller
+9) Add your JSON file to the documentation controller
Open "chrome/common/extensions/docs/js/api_page_generator.js" and add a line
referring to "../api/experimental_foo.json". Do this even if you used the IDL
approach as this JSON file has been generated in (7).
-9) Write the static HTML page.
+10) Write the static HTML page.
Write a small snippet of static HTML describing your API in
"chrome/common/extensions/docs/static/experimental.foo.html". For the moment,
just include the following in this file, adjusting it to describe your API:
@@ -87,7 +91,7 @@ just include the following in this file, adjusting it to describe your API:
<p>The current methods allow applications to...</p>
<!-- END AUTHORED CONTENT -->
-10) Build the documentation.
+11) Build the documentation.
You will need to build DumpRenderTree once before you can build the
documentation. Once this is done, from "chrome/common/extensions/docs" run
"build/build.py". For more information on building documentation see README.txt
@@ -96,5 +100,7 @@ in "chrome/common/extensions/docs".
--------------------------------------------------------------------------------
WRITING TESTS
-TODO(beaudoin)
-
+12) Write a unit test for your API.
+Create "chrome/browser/extensions/api/foo/foo_api_unittest.cc" and test each of
+your API methods. See "alarms_api_unittest.cc" for details. Once done add your
+.cc to "chrome/chrome_tests.gypi".

Powered by Google App Engine
This is Rietveld 408576698