Skip to content

Commit 1e64219

Browse files
committed
Fix WP-SL unit testing environment including localized strings.
1 parent affa0d6 commit 1e64219

8 files changed

Lines changed: 45 additions & 222 deletions

File tree

test/MsgPack.UnitTest.Silverlight.WindowsPhone/App.xaml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
<Application
2-
x:Class="MsgPack.UnitTest.Silverlight.WindowsPhone.App"
2+
x:Class="MsgPack.App"
33
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
44
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
55
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
66
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone">
77

8-
<!--アプリケーション リソース-->
98
<Application.Resources>
10-
<local:LocalizedStrings xmlns:local="clr-namespace:MsgPack.UnitTest.Silverlight.WindowsPhone" x:Key="LocalizedStrings"/>
9+
<local:LocalizedStrings xmlns:local="clr-namespace:MsgPack" x:Key="LocalizedStrings"/>
1110
</Application.Resources>
1211

1312
<Application.ApplicationLifetimeObjects>
14-
<!--アプリケーションのライフタイム イベントを処理する必須オブジェクト-->
1513
<shell:PhoneApplicationService
1614
Launching="Application_Launching" Closing="Application_Closing"
1715
Activated="Application_Activated" Deactivated="Application_Deactivated"/>

test/MsgPack.UnitTest.Silverlight.WindowsPhone/App.xaml.cs

Lines changed: 3 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -6,210 +6,101 @@
66
using System.Windows.Navigation;
77
using Microsoft.Phone.Controls;
88
using Microsoft.Phone.Shell;
9-
using MsgPack.UnitTest.Silverlight.WindowsPhone.Resources;
9+
using MsgPack.Resources;
1010

11-
namespace MsgPack.UnitTest.Silverlight.WindowsPhone
11+
namespace MsgPack
1212
{
1313
public partial class App : Application
1414
{
15-
/// <summary>
16-
/// Phone アプリケーションのルート フレームへの容易なアクセスを提供します。
17-
/// </summary>
18-
/// <returns>Phone アプリケーションのルート フレームです。</returns>
1915
public static PhoneApplicationFrame RootFrame { get; private set; }
2016

21-
/// <summary>
22-
/// Application オブジェクトのコンストラクターです。
23-
/// </summary>
2417
public App()
2518
{
26-
// キャッチできない例外のグローバル ハンドラーです。
2719
UnhandledException += Application_UnhandledException;
28-
29-
// 標準 XAML の初期化
3020
InitializeComponent();
31-
32-
// Phone 固有の初期化
3321
InitializePhoneApplication();
34-
35-
// 言語表示の初期化
3622
InitializeLanguage();
37-
38-
// デバッグ中にグラフィックスのプロファイル情報を表示します。
3923
if ( Debugger.IsAttached )
4024
{
41-
// 現在のフレーム レート カウンターを表示します。
4225
Application.Current.Host.Settings.EnableFrameRateCounter = true;
43-
44-
// 各フレームで再描画されているアプリケーションの領域を表示します。
45-
//Application.Current.Host.Settings.EnableRedrawRegions = true;
46-
47-
// 試験的な分析視覚化モードを有効にします。
48-
// これにより、色付きのオーバーレイを使用して、GPU に渡されるページの領域が表示されます。
49-
//Application.Current.Host.Settings.EnableCacheVisualization = true;
50-
51-
// アプリケーションのアイドル状態の検出を無効にして、デバッガーの実行中に画面が
52-
// オフにならないようにします。
53-
// 注意: これはデバッグ モードのみで使用してください。ユーザーが電話を使用していないときに、ユーザーのアイドル状態の検出を無効にする
54-
// アプリケーションが引き続き実行され、バッテリ電源が消耗します。
5526
PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
5627
}
5728

5829
}
59-
60-
// (たとえば、[スタート] メニューから) アプリケーションが起動するときに実行されるコード
61-
// このコードは、アプリケーションが再アクティブ化済みの場合には実行されません
6230
private void Application_Launching( object sender, LaunchingEventArgs e )
6331
{
6432
}
65-
66-
// アプリケーションがアクティブになった (前面に表示された) ときに実行されるコード
67-
// このコードは、アプリケーションの初回起動時には実行されません
6833
private void Application_Activated( object sender, ActivatedEventArgs e )
6934
{
7035
}
71-
72-
// アプリケーションが非アクティブになった (バックグラウンドに送信された) ときに実行されるコード
73-
// このコードは、アプリケーションの終了時には実行されません
7436
private void Application_Deactivated( object sender, DeactivatedEventArgs e )
7537
{
7638
}
77-
78-
// (たとえば、ユーザーが戻るボタンを押して) アプリケーションが終了するときに実行されるコード
79-
// このコードは、アプリケーションが非アクティブになっているときには実行されません
8039
private void Application_Closing( object sender, ClosingEventArgs e )
8140
{
8241
}
83-
84-
// ナビゲーションに失敗した場合に実行されるコード
8542
private void RootFrame_NavigationFailed( object sender, NavigationFailedEventArgs e )
8643
{
8744
if ( Debugger.IsAttached )
8845
{
89-
// ナビゲーションに失敗しました。デバッガーで中断します。
9046
Debugger.Break();
9147
}
9248
}
93-
94-
// ハンドルされない例外の発生時に実行されるコード
9549
private void Application_UnhandledException( object sender, ApplicationUnhandledExceptionEventArgs e )
9650
{
9751
if ( Debugger.IsAttached )
9852
{
99-
// ハンドルされない例外が発生しました。デバッガーで中断します。
10053
Debugger.Break();
10154
}
10255
}
10356

10457
#region Phone application initialization
105-
106-
// 初期化の重複を回避します
10758
private bool phoneApplicationInitialized = false;
108-
109-
// このメソッドに新たなコードを追加しないでください
11059
private void InitializePhoneApplication()
11160
{
11261
if ( phoneApplicationInitialized )
11362
return;
114-
115-
// フレームを作成しますが、まだ RootVisual に設定しないでください。これによって、アプリケーションがレンダリングできる状態になるまで、
116-
// スプラッシュ スクリーンをアクティブなままにすることができます。
11763
RootFrame = new PhoneApplicationFrame();
11864
RootFrame.Navigated += CompleteInitializePhoneApplication;
119-
120-
// ナビゲーション エラーを処理します
12165
RootFrame.NavigationFailed += RootFrame_NavigationFailed;
122-
123-
// 次のナビゲーションでバックスタックをクリアして、
12466
RootFrame.Navigated += CheckForResetNavigation;
125-
126-
// 再初期化しないようにします
12767
phoneApplicationInitialized = true;
12868
}
129-
130-
// このメソッドに新たなコードを追加しないでください
13169
private void CompleteInitializePhoneApplication( object sender, NavigationEventArgs e )
13270
{
133-
// ルート visual を設定してアプリケーションをレンダリングできるようにします
13471
if ( RootVisual != RootFrame )
13572
RootVisual = RootFrame;
136-
137-
// このハンドラーは必要なくなったため、削除します
13873
RootFrame.Navigated -= CompleteInitializePhoneApplication;
13974
}
14075

14176
private void CheckForResetNavigation( object sender, NavigationEventArgs e )
14277
{
143-
// アプリが 'リセット' ナビゲーションを受け取った場合、チェックする必要があります
144-
// ページ スタックをリセットする必要があるかどうかを確認するためのリセット要求を処理します
14578
if ( e.NavigationMode == NavigationMode.Reset )
14679
RootFrame.Navigated += ClearBackStackAfterReset;
14780
}
14881

14982
private void ClearBackStackAfterReset( object sender, NavigationEventArgs e )
15083
{
151-
// もう一度呼び出されないようにイベントの登録を解除します
15284
RootFrame.Navigated -= ClearBackStackAfterReset;
153-
154-
// '新しい' (次の) ナビゲーションおよび '更新' ナビゲーションのスタックのみをクリアします
15585
if ( e.NavigationMode != NavigationMode.New && e.NavigationMode != NavigationMode.Refresh )
15686
return;
157-
158-
// UI の一貫性を維持するため、ページ スタック全体をクリアします
15987
while ( RootFrame.RemoveBackEntry() != null )
16088
{
161-
; // 何も実行しません
89+
;
16290
}
16391
}
16492

16593
#endregion
166-
167-
// アプリのフォントと方向をそのローカライズされたリソース文字列で定義されたように初期化します。
168-
//
169-
// アプリケーションのフォントがそのサポートされる言語と一致し、各言語の FlowDirection がその従来の
170-
// 方向に従うようにするには、各 resx ファイルで ResourceLanguage と ResourceFlowDirection を
171-
// 初期化して、これらの値をそのファイルのカルチャと一致させる
172-
// 必要があります。例:
173-
//
174-
// AppResources.es-ES.resx
175-
// ResourceLanguage の値は "es-ES" にする必要があります
176-
// ResourceFlowDirection の値は "LeftToRight" にする必要があります
177-
//
178-
// AppResources.ar-SA.resx
179-
// ResourceLanguage の値は "ar-SA" にする必要があります
180-
// ResourceFlowDirection の値は "RightToLeft" にする必要があります
181-
//
182-
// Windows Phone アプリのローカライズの詳細については、http://go.microsoft.com/fwlink/?LinkId=262072 を参照してください。
183-
//
18494
private void InitializeLanguage()
18595
{
18696
try
18797
{
188-
// サポートされている各言語の ResourceLanguage リソース文字列で定義された
189-
// 表示言語と一致するようにフォントを設定します。
190-
//
191-
// 電話の表示言語がサポートされていない場合は、ニュートラル
192-
// 言語のフォントにフォールバックします。
193-
//
194-
// コンパイラ エラーが発生すると、ResourceLanguage がリソース ファイル
195-
// からなくなります。
19698
RootFrame.Language = XmlLanguage.GetLanguage( AppResources.ResourceLanguage );
197-
198-
// サポートされる各言語の ResourceFlowDirection リソース文字列に基づいて、
199-
// ルート フレームのすべての要素の FlowDirection を
200-
// 設定します。
201-
//
202-
// コンパイラ エラーが発生すると、ResourceFlowDirection がリソース ファイル
203-
// からなくなります。
20499
FlowDirection flow = ( FlowDirection )Enum.Parse( typeof( FlowDirection ), AppResources.ResourceFlowDirection );
205100
RootFrame.FlowDirection = flow;
206101
}
207102
catch
208103
{
209-
// ここで例外が発生した場合、その原因は、
210-
// ResourceLangauge がサポートされている言語コードに正しく設定されていないこと、
211-
// または ResourceFlowDirection が LeftToRight または RightToLeft 以外の
212-
// 値に設定されていることである可能性があります。
213104

214105
if ( Debugger.IsAttached )
215106
{

test/MsgPack.UnitTest.Silverlight.WindowsPhone/LocalizedStrings.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22

33
namespace MsgPack
44
{
5-
/// <summary>
6-
/// 文字列リソースにアクセスできるようにします。
7-
/// </summary>
85
public class LocalizedStrings
96
{
107
private static AppResources _localizedResources = new AppResources();
Lines changed: 4 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<phone:PhoneApplicationPage
2-
x:Class="MsgPack.UnitTest.Silverlight.WindowsPhone.MainPage"
2+
x:Class="MsgPack.MainPage"
33
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
44
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
55
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
@@ -13,50 +13,21 @@
1313
SupportedOrientations="Portrait" Orientation="Portrait"
1414
shell:SystemTray.IsVisible="True">
1515

16-
<!--LayoutRoot は、すべてのページ コンテンツが配置されるルート グリッドです-->
1716
<Grid x:Name="LayoutRoot" Background="Transparent">
1817
<Grid.RowDefinitions>
1918
<RowDefinition Height="Auto"/>
2019
<RowDefinition Height="*"/>
2120
</Grid.RowDefinitions>
2221

23-
<!-- ローカライズに関する注:
24-
表示された文字列をローカライズするには、その値を、アプリのニュートラル言語
25-
リソース ファイル (AppResources.resx) 内の適切な名前のキーにコピーしてから、
26-
属性の引用符間のハードコーディングされたテキスト値を、パスがその文字列名を
27-
指しているバインド句と置き換えます。
28-
29-
例:
30-
31-
Text="{Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}"
32-
33-
このバインドは、テンプレートの "ApplicationTitle" という文字列リソースを指します。
34-
35-
[プロジェクトのプロパティ] タブでサポートされている言語を追加すると、
36-
新しい resx ファイルが、UI 文字列の翻訳された値を含む言語ごとに作成
37-
されます。これらの例にあるバインドにより、属性の値が、実行時に
38-
アプリの CurrentUICulture と一致する .resx ファイルから描画されます。
39-
40-
-->
41-
42-
<!--TitlePanel は、アプリケーション名とページ タイトルを格納します-->
4322
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
44-
<TextBlock Text="アプリのテスト" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>
45-
<TextBlock Text="単体テスト" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
23+
<TextBlock Text="MsgPack for CLI Unit tests" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>
24+
<TextBlock Text="Unit testing" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
4625
</StackPanel>
4726

48-
<!--ContentPanel - 追加コンテンツをここに入力します-->
4927
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
50-
<TextBlock x:Name="label" Text="テストの実行中" HorizontalAlignment="Center" VerticalAlignment="Center"/>
28+
<TextBlock x:Name="label" Text="Testing..." HorizontalAlignment="Center" VerticalAlignment="Center"/>
5129
</Grid>
5230

53-
<!--コメントを解除してアラインメント グリッドを表示し、コントロールが共通の
54-
境界に整列されるようにします。イメージの上余白は -32px で、システム
55-
トレイを占有します。システム トレイが非表示になっている場合は、これを
56-
0 に設定します (または余白をすべて削除します)。
57-
58-
製品を出荷する前に、この XAML とイメージ自体を削除してください。-->
59-
<!--<Image Source="/Assets/AlignmentGrid.png" VerticalAlignment="Top" Height="800" Width="480" Margin="0,-32,0,0" Grid.Row="0" Grid.RowSpan="2" IsHitTestVisible="False" />-->
6031
</Grid>
6132

6233
</phone:PhoneApplicationPage>

test/MsgPack.UnitTest.Silverlight.WindowsPhone/MainPage.xaml.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,16 @@
77
using System.Windows.Navigation;
88
using Microsoft.Phone.Controls;
99
using Microsoft.Phone.Shell;
10-
using MsgPack.UnitTest.Silverlight.WindowsPhone.Resources;
1110
using System.Threading;
1211
using Microsoft.VisualStudio.TestPlatform.Core;
1312
using vstest_executionengine_platformbridge;
1413
using Microsoft.VisualStudio.TestPlatform.TestExecutor;
1514
using System.Reflection;
1615

17-
namespace MsgPack.UnitTest.Silverlight.WindowsPhone
16+
namespace MsgPack
1817
{
1918
public partial class MainPage : PhoneApplicationPage
2019
{
21-
// コンストラクター
2220
public MainPage()
2321
{
2422
InitializeComponent();

test/MsgPack.UnitTest.Silverlight.WindowsPhone/MsgPack.UnitTest.Silverlight.WindowsPhone.csproj

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<GenerateSilverlightManifest>true</GenerateSilverlightManifest>
2323
<XapFilename>MsgPack.UnitTest.Silverlight.WindowsPhone_$(Configuration)_$(Platform).xap</XapFilename>
2424
<SilverlightManifestTemplate>Properties\AppManifest.xml</SilverlightManifestTemplate>
25-
<SilverlightAppEntry>MsgPack.UnitTest.Silverlight.WindowsPhone.App</SilverlightAppEntry>
25+
<SilverlightAppEntry>MsgPack.App</SilverlightAppEntry>
2626
<ValidateXaml>false</ValidateXaml>
2727
<MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion>
2828
<ThrowErrorsInValidation>true</ThrowErrorsInValidation>
@@ -412,7 +412,13 @@
412412
<Compile Include="..\MsgPack.UnitTest\_SetUpFixture.cs">
413413
<Link>_SetUpFixture.cs</Link>
414414
</Compile>
415+
<Compile Include="App.xaml.cs">
416+
<DependentUpon>App.xaml</DependentUpon>
417+
</Compile>
415418
<Compile Include="LocalizedStrings.cs" />
419+
<Compile Include="MainPage.xaml.cs">
420+
<DependentUpon>MainPage.xaml</DependentUpon>
421+
</Compile>
416422
<Compile Include="Properties\AssemblyInfo.cs" />
417423
<Compile Include="Resources\AppResources.Designer.cs">
418424
<AutoGen>True</AutoGen>

0 commit comments

Comments
 (0)