mirror of https://github.com/lukechilds/node.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.1 KiB
62 lines
2.1 KiB
#!/usr/bin/env python
|
|
|
|
# Copyright (c) 2012 Google Inc. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
"""
|
|
Verifies that a postbuild copying a dependend framework into an app bundle is
|
|
rerun if the resources in the framework change.
|
|
"""
|
|
|
|
import TestGyp
|
|
|
|
import os.path
|
|
import sys
|
|
|
|
if sys.platform == 'darwin':
|
|
# TODO(thakis): Make this pass with the make generator, http://crbug.com/95529
|
|
test = TestGyp.TestGyp(formats=['ninja', 'xcode'])
|
|
|
|
CHDIR = 'postbuild-copy-bundle'
|
|
test.run_gyp('test.gyp', chdir=CHDIR)
|
|
|
|
app_bundle_dir = test.built_file_path('Test app.app', chdir=CHDIR)
|
|
bundled_framework_dir = os.path.join(
|
|
app_bundle_dir, 'Contents', 'My Framework.framework', 'Resources')
|
|
final_plist_path = os.path.join(bundled_framework_dir, 'Info.plist')
|
|
final_resource_path = os.path.join(bundled_framework_dir, 'resource_file.sb')
|
|
|
|
# Check that the dependency was built and copied into the app bundle:
|
|
test.build('test.gyp', 'test_app', chdir=CHDIR)
|
|
test.must_exist(final_resource_path)
|
|
test.must_match(final_resource_path,
|
|
'This is included in the framework bundle.\n')
|
|
|
|
test.must_exist(final_plist_path)
|
|
test.must_contain(final_plist_path, '''\
|
|
\t<key>RandomKey</key>
|
|
\t<string>RandomValue</string>''')
|
|
|
|
# Touch the dependency's bundle resource, and check that the modification
|
|
# makes it all the way into the app bundle:
|
|
test.sleep()
|
|
test.write('postbuild-copy-bundle/resource_file.sb', 'New text\n')
|
|
test.build('test.gyp', 'test_app', chdir=CHDIR)
|
|
|
|
test.must_exist(final_resource_path)
|
|
test.must_match(final_resource_path, 'New text\n')
|
|
|
|
# Check the same for the plist file.
|
|
test.sleep()
|
|
contents = test.read('postbuild-copy-bundle/Framework-Info.plist')
|
|
contents = contents.replace('RandomValue', 'NewRandomValue')
|
|
test.write('postbuild-copy-bundle/Framework-Info.plist', contents)
|
|
test.build('test.gyp', 'test_app', chdir=CHDIR)
|
|
|
|
test.must_exist(final_plist_path)
|
|
test.must_contain(final_plist_path, '''\
|
|
\t<key>RandomKey</key>
|
|
\t<string>NewRandomValue</string>''')
|
|
|
|
test.pass_test()
|
|
|